2009-02-08 2 views
0

У меня есть эта неприятная проблема с флажком, созданным с использованием метода расширения Html.Checkbox. По-видимому, состояние флажка не сохраняется в случае обратной передачи (из-за ошибки проверки формы). Ввод в код MVC сам (System.Web.Mvc.Html.InputExtensions) Я узнал, что свойство «checked» определяется путем вызова htmlHelper.EvalBoolean(name).Html.Checkbox не сохраняет свое состояние в ASP.net MVC

Этот метод ищет ключ (указанный в аргументе имени) самой ViewData. Проблема в том, что значение флажка фактически находится в ModelState. Вызов htmlHelper.GetModelStateValue(name, typeof(bool)) вернет ожидаемый результат.

Является ли это недостатком в реализации флажка?

ответ

0

Помните, что идеология MVC заключается в том, чтобы переместить веб-интерфейс так, как это было несколько лет назад. Вы не должны иметь обратную передачу на странице, не используя что-то вроде AJAX. Таким образом, большинство элементов управления, которые вы используете для поддержания своего собственного состояния, больше не будут выполняться.

Вы думаете об использовании AJAX, чтобы попытаться решить эту проблему? Таким образом, вы можете иметь свой postbakc и поддерживать состояние контроля?

+0

проверки на стороне клиента является 'Приятно иметь', но не является удовлетворительным. В конце концов, большинство сайтов должны проверять на стороне сервера –

1

Эта проблема была опубликована codeplex и будет фиксированной/поддерживаемой в RTM MVC. В то же время, это хороший workaround.

Смежные вопросы