什么可能导致ViewData.ModelState.IsValid变为false

pon*_*tic 21 asp.net-mvc

有时我发现我的ModelState无效,但由于没有ModelErrors,因此无法找到使其无效的内容.如果您自己没有添加ModelError,那么确定哪些模型状态无效的最简单方法是什么?

Ste*_*ock 36

查看asp.net mvc源代码,ModelStateDictionary上的IsValid属性只返回true或false,具体取决于Values属性中保存的ModelState ICollection中是否存在任何错误.

您应该能够找到任何错误,包括消息和异常,如下所示:

foreach(var modelStateValue in ViewData.ModelState.Values)
{
    foreach(var error in modelStateValue.Errors)
    {
        // Do something useful with these properties
        var errorMessage = error.ErrorMessage;
        var exception = error.Exception;
    }
}
Run Code Online (Sandbox Code Playgroud)