我正在尝试使用 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,字符串名称,对象值,布尔useViewData,布尔isChecked,布尔setId , 布尔值 isExplicitValue, IDictionary2 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,控制参数Container),位于 c:\Users\Trimack\Documents\Visual Studio 2008\Projects\GuestManager\AccountManager\Views\Authorized\Account.aspx:第 61 行*
有任何想法吗?或者我完全错了?
Trimack
因此,对于使用 ModelState.AddModelError() 添加的每个错误并再次调用视图,MVC 框架将尝试为其找到的每个错误查找 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"]);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)