2009-10-15 106 views
3

ModelState.IsValid在我的控制器返回給我假的。我知道這意味着模型綁定時會發現一個或多個模型錯誤。我的問題是我如何看到錯誤?ASP.NET MVC模型狀態

我注意到我的特殊的ModelState中有6個項目。如果我嘗試做這些...

ModelState[0].Errors[0].ToString() 
ModelState[0].Errors[0].ErrorMessage 
ModelState[0].Value.AttemptedValue 

我得到這個錯誤:

The best overloaded method match for 'System.Web.Mvc.ModelStateDictionary.this[string]' has some invalid arguments 
+0

你調試你的控制器動作,實際上看到裏面有什麼的ModelState? – 2009-10-15 13:15:48

+0

你能檢查這些的.InnerException嗎? – 2009-10-15 13:16:28

回答

3

的indexor到的ModelState是一個字符串(通常是有問題的型號或名稱的屬性名稱html元素)。

如果選中了ModelState類MSDN文檔,你會看到它有一個錯誤集合,將允許您遍歷誤差項(這是ModelError情況下),看看是什麼原因導致他們。

在控制器
2

;

ModelState.AddModelError("username", "Bad username"); 

在視圖中;

<%= Html.ValidationMessage("username") %> 

<%= Html.ValidationSummary() %> 

Html.ValidationSummary()可能是你在找什麼。