如何找出这ModelState中包含一个错误,当ModelState.IsValid是假的钥匙? 通常我只会把鼠标直通的ModelState.Values列表检查逐项进行错误计数> 0。但现在我的工作在具有复杂对象的某些列表视图,共计252项的ModelState(每个对象的每个项目每个列表的对ModelState.Keys的条目)。
那么,有没有指出错误源更简单的方法?
如何找出这ModelState中包含一个错误,当ModelState.IsValid是假的钥匙? 通常我只会把鼠标直通的ModelState.Values列表检查逐项进行错误计数> 0。但现在我的工作在具有复杂对象的某些列表视图,共计252项的ModelState(每个对象的每个项目每个列表的对ModelState.Keys的条目)。
那么,有没有指出错误源更简单的方法?
您可以检查ViewData.ModelState.Values
集合,看看什么是错误。
[Httpost]
public ActionResult Create(User model)
{
if(ModelState.IsValid)
{
//Save and redirect
}
else
{
foreach (var modelStateVal in ViewData.ModelState.Values)
{
foreach (var error in modelStateVal.Errors)
{
var errorMessage = error.ErrorMessage;
var exception = error.Exception;
// You may log the errors if you want
}
}
}
return View(model);
}
}
如果你真的想要的键(属性名称),你可以通过迭代ModelState.Keys
foreach (var modelStateKey in ViewData.ModelState.Keys)
{
var modelStateVal = ViewData.ModelState[modelStateKey];
foreach (var error in modelStateVal.Errors)
{
var key = modelStateKey;
var errorMessage = error.ErrorMessage;
var exception = error.Exception;
// You may log the errors if you want
}
}
ModelState.Values.SelectMany(v => v.Errors);
被认为是清洁的。