当modelstate.isvalid为false时,如何确定modelstate中哪些键包含错误?通常我只需将鼠标悬停在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
}
}
关于c# - 如何找出ModelState的哪个键有错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15296069/