Html.Checkbox не сохраняет свое состояние в ASP.net MVC - PullRequest
0 голосов
/ 08 февраля 2009

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

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

Это недостаток в реализации флажка?

Ответы [ 3 ]

1 голос
/ 12 февраля 2009

Эта проблема была размещена на codeplex и будет исправлена ​​/ поддержана в MVC RTM. А пока это хороший обходной путь .

1 голос
/ 22 февраля 2009

Я разместил здесь еще одну работу:

Как сохранить состояние Html.CheckBox () в ASP.NET MVC

0 голосов
/ 09 февраля 2009

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...