我正在构建的 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();
注意:这适用于我的所有字段,而不仅仅是我的电子邮件字段,只要它们是无效的。