system.web.mvc如何确定ModelState的值是否包含错误?

the*_*ser 0 asp.net-mvc modelstate asp.net-mvc-4

那么,我可以打电话ModelState.IsValid给控制器?

检查什么?什么是检查?它在哪里发生?

我查看了MSDN文档,但没有透露太多内容.

Dar*_*rov 5

检查什么?

ModelState字典.

什么是检查?

此字典是否包含带错误的元素.

它在哪里发生?

每当你调用IsValid方法时.但也许你在问这个词典何时填充.它由默认模型绑定器填充.例如,假设您有以下控制器操作:

[HttpPost]
public ActionResult Index(MyViewModel model)
{
    if (ModelState.IsValid) ...
}
Run Code Online (Sandbox Code Playgroud)

当默认的模型绑定绑定到视图模型(控制器动作执行前),它会解析请求值时,应用必要的验证,如果有错误,将它们添加到的ModelState字典.因此,一旦代码到达控制器操作并检查IsValid属性,就会填充此字典.