Model Binding With Disabled Textbox

asp.net, asp.net-mvc, model-binding

Solution

I believe a form field that is disabled does not submit anything. If you have a form and disable the foo field in that form, when you post the post will not have the value for the foo field. This is simply the nature of disabling a field in HTML and is not a MVC issue.

Problem

I have a textbox that I am defining as ``` <%= Html.TextBox("Username", Model.Form.Username, new { @class = "textbox", @disabled = "disabled" })%> ``` The action is defined as ``` [AcceptVerbs(HttpVerbs.Post)] [ValidateAntiForgeryToken] public ActionResult EditLogin(LoginForm post) { ... return View(model); } ``` When I POST to this, `Username` will be blank. All other properties bind correctly, but if I change `@disabled="disabled"` to `@readonly="readonly"` the username binds properly and everything works. It looks like model binding ignores values in disabled fields. Is there a way around this? I still need the field's value to bind to the model. I can use readonly but would prefer to use disabled so it is visually apparent to the user that they cannot edit the value of the field.

Original source

Related problems