У меня есть эта раздражающая проблема с флажком, созданным с использованием метода расширения Html.Checkbox
. Видимо, состояние флажка не сохраняется в случае обратной передачи (из-за ошибки проверки формы). Погружаясь в сам код MVC (System.Web.Mvc.Html.InputExtensions
), я обнаружил, что свойство 'checked' определяется путем вызова htmlHelper.EvalBoolean(name)
.
Этот метод ищет ключ (указанный в аргументе name) самого ViewData. Проблема в том, что значение флажка фактически находится в ModelState. призвание
htmlHelper.GetModelStateValue(name, typeof(bool))
вернет ожидаемый результат.
Это недостаток в реализации флажка?