那么,我可以在控制器中调用ModelState.IsValid
吗?
检查了什么?什么是检查? 它在哪里发生?
我查看了MSDN文档,并没有透露太多内容。
答案 0 :(得分:5)
检查了什么?
ModelState字典。
检查了什么?
此字典是否包含带错误的元素。
它在哪里发生?
每当你调用IsValid方法时。但也许你在问这个词典何时填充。它由默认模型绑定器填充。例如,假设您有以下控制器操作:
[HttpPost]
public ActionResult Index(MyViewModel model)
{
if (ModelState.IsValid) ...
}
当默认模型绑定器绑定到视图模型时(在执行控制器操作之前),它将在解析请求值时应用必要的验证,如果有错误,它将把它们添加到ModelState字典中。因此,一旦代码到达控制器操作并检查IsValid属性,就会填充此字典。