У меня есть текстовое поле, которое я определяю как
<%= Html.TextBox("Username", Model.Form.Username,
new { @class = "textbox", @disabled = "disabled" })%>
В моем действии
[AcceptVerbs(HttpVerbs.Post)]
[ValidateAntiForgeryToken]
public ActionResult EditLogin(LoginForm post) {
...
return View(model);
}
сообщение. Имя пользователя будет пробелом, все другие свойства связывают правильно, но если я изменяю @disabled = "отключенный к @readonly = "только для чтения", имя пользователя связывает правильно, и все работает.
Похоже, что образцовая привязка игнорирует значения в отключенных полях. Их путь вокруг этого? Мне все еще нужно значение поля для привязки с моделью. Я могу использовать только для чтения, но предпочел бы использовать отключенный, таким образом, для пользователя визуально очевидно, что они не могут отредактировать значение поля.
Я считаю, что отключенное поле формы ничего не отправляет. Если у вас есть форма и отключено поле foo в этой форме, при публикации пост не будет иметь значения для поля foo. Это просто природа отключения поля в HTML и не проблема MVC.
Если вы хотите, чтобы значение было отправлено обратно, но нельзя было редактировать, рассмотрите возможность размещения его в скрытом поле. Очевидно, не делайте этого для всего, что требует определенной степени безопасности, поскольку пользователь может вмешаться в это.