【发布时间】:2014-07-16 15:28:03
【问题描述】:
我的 ModelState.IsValid 返回 false,但我无法弄清楚验证失败的原因。我对视图模型的任何属性都没有数据注释,所以不明白。
如何确定导致验证失败的原因?我想只有这样我才能弄清楚发生了什么。
【问题讨论】:
-
任何值类型的东西,比如int,都被自动认为是必需的。与日期时间相同。您是否提交了任何空属性?
我的 ModelState.IsValid 返回 false,但我无法弄清楚验证失败的原因。我对视图模型的任何属性都没有数据注释,所以不明白。
如何确定导致验证失败的原因?我想只有这样我才能弄清楚发生了什么。
【问题讨论】:
除了数据注释之外,简单的绑定问题也可能导致错误:例如,一个应该是数字但其中包含字母的值。
ModelState.Errors property 包含一组错误信息,您可以检查或遍历这些信息以发现哪些属性有错误,以及为它们生成了哪些错误消息。
【讨论】:
您可以使用以下方法捕获错误:
foreach (ModelState modelState in ViewData.ModelState.Values) {
foreach (ModelError error in modelState.Errors)
{
// put debug point or add all the errors in collection or list
}
}
【讨论】: