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

时间:2014-02-20 16:27:23

标签: asp.net-mvc asp.net-mvc-4 modelstate

那么,我可以在控制器中调用ModelState.IsValid吗?

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

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

1 个答案:

答案 0 :(得分:5)

  

检查了什么?

ModelState字典。

  

检查了什么?

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

  

它在哪里发生?

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

[HttpPost]
public ActionResult Index(MyViewModel model)
{
    if (ModelState.IsValid) ...
}

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