我在構建的ASP.NET MVC網站上有一個簡單的表單。提交此表單,然後驗證表單字段不爲空,空或格式不正確。ASP.NET MVC中的表單提交屬性驗證錯誤
但是,當我使用ModelState.AddModelError()
指示來自我的控制器代碼的驗證錯誤時,我的視圖重新呈現時,I 會出現錯誤。在Visual Studio中,我得到了下面的行被突出顯示爲錯誤的位置:
<%=Html.TextBox("Email")%>
的錯誤是:
NullReferenceException was unhandled by user code - object reference not set to an instance of an object.
我該文本框完整的代碼如下:
<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();
注意:這適用於我所有的領域,不只是我的電子郵件字段,只要他們是無效的。
因此,對於第一個代碼示例:你必須有兩條線,對不對?換句話說,我首先調用AddModelError,然後調用SetModelValue?另外,什麼是原始價值和企圖價值?謝謝。 – 2010-05-08 22:15:25
是的,你需要兩條線。 RawValue指向具有用於更新的屬性的對象。 AttemptedValue存儲用戶實際輸入的內容。我相信你可能會留下空白。 – 2010-05-08 22:19:11
您能舉一個RawValue的例子,比如email屬性嗎?我有點困惑。 – 2010-05-08 22:41:58