【发布时间】:2010-05-08 21:51:20
【问题描述】:
我正在构建的 ASP.NET MVC 站点上有一个简单的表单。此表单已提交,然后我验证表单字段不为空、为空或格式不正确。
但是,当我使用 ModelState.AddModelError() 指示控制器代码中的验证错误时,我在重新渲染视图时收到错误。在 Visual Studio 中,我发现以下行突出显示为错误的位置:
<%=Html.TextBox("Email")%>
错误如下:
NullReferenceException 未被用户代码处理 - 对象引用未设置为对象的实例。
我对该文本框的完整代码如下:
<p>
<label for="Email">Your Email:</label>
<%=Html.TextBox("Email")%>
<%=Html.ValidationMessage("Email", "*") %>
</p>
这是我在控制器中进行验证的方式:
try
{
System.Net.Mail.MailAddress address = new System.Net.Mail.MailAddress(email);
}
catch
{
ModelState.AddModelError("Email", "Should not be empty or invalid");
}
return View();
注意:这适用于我的所有字段,而不仅仅是我的电子邮件字段,只要它们无效。
【问题讨论】:
标签: c# asp.net asp.net-mvc validation modelstate