Проверка формы с использованием ModelState - PullRequest
2 голосов
/ 20 мая 2009

Я пытаюсь проверить форму, используя ModelState, как и в учебниках на asp.net/mvc. Однако у меня нет собственной базы данных или их объектов, и я хочу проверить ее на соответствие Formcollection. Я не уверен, как работает ModelState, поэтому, возможно, я снимаю в темноте, но вот код, который вылетает:

и NullReferenceException, которое я получаю в TextBox:

System.NullReferenceException: ссылка на объект не установлена ​​для экземпляра объекта. в System.Web.Mvc.HtmlHelper.GetModelStateValue (строковый ключ, тип destinationType) в System.Web.Mvc.Html.InputExtensions.InputHelper (HtmlHelper htmlHelper, InputType inputType, имя строки, значение объекта, логическое выражение типа BooleleCleateView) , Boolean isExplicitValue, IDictionary 2 htmlAttributes) at System.Web.Mvc.Html.InputExtensions.TextBox(HtmlHelper htmlHelper, String name, Object value, IDictionary 2 htmlAttributes) в System.Web.Mvc.Html.InputExtensions.TextBox (HtmlHelper HtmlHelper, имя строки, значение объекта) при ASP.views_authorized_account_aspx .__ RenderContent1 (HtmlTextWriter __w, контроль parameterContainer) в C: \ Пользователи \ Trimack \ Documents \ Visual Studio 2008 \ Projects \ GuestManager \ AccountManager \ Views \ Authorized \ Account.aspx: строка 61 *

Есть идеи? Или я совершенно не прав?

Trimack

1 Ответ

3 голосов
/ 20 мая 2009

Итак, для каждой ошибки, которую вы добавляете с помощью ModelState.AddModelError () и снова вызываете View, MVC Framework будет пытаться найти AttemptedValue для каждой найденной ошибки. Поскольку вы не добавили их, MVC выдаст исключение.

http://forums.asp.net/p/1396019/3006051.aspx

Если есть ошибки, вы также должны установить значение модели, а также модальную ошибку

ModelState.AddModelError("Some_Key","Show some error message");
ModelState.SetModelValue("Some_Key", ValueProvider["Some_Key"]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...