Asp.net mvc 如何获取对象列表MVC/WebAPI的ModelState错误
您好,我有下面的代码片段,其中我在“errors”变量中获得了所有模型错误,但我希望它们根据对象单独出现。有人能建议如何有效地实现这一目标吗Asp.net mvc 如何获取对象列表MVC/WebAPI的ModelState错误,asp.net-mvc,asp.net-web-api,Asp.net Mvc,Asp.net Web Api,您好,我有下面的代码片段,其中我在“errors”变量中获得了所有模型错误,但我希望它们根据对象单独出现。有人能建议如何有效地实现这一目标吗 public HttpResponseMessage Put(List<Student> Students) { if (Students != null && ModelState.IsValid) { try
public HttpResponseMessage Put(List<Student> Students)
{
if (Students != null && ModelState.IsValid)
{
try
{
// Do some operation
}
}
else
{
var errors = new List<string>();
foreach (var state in ModelState)
{
foreach (var error in state.Value.Errors)
{
errors.Add(error.ErrorMessage);
}
}
return errors;
}
}
是否希望错误消息与每个有错误的属性关联?是的,列表的每个对象的每个属性,假设我有两个Student对象,第一个对象没有fname,第二个对象没有lname,然后我希望它们为{0:{[{key:'fname',error:'fname is required'}]},1:{[{key:'lname',error:'lname is required'}]}}看一看。它只给出每个属性的第一个错误-如果一个属性有多个错误,则需要更复杂的分组查询请检查该问题以获得更清晰的信息。你真的认为你提供的解决方案能够解决我的问题吗。我同意每个属性只显示一个错误。如果您使用该查询(从链接)并返回
Json(错误)
,您将得到[{propertyName:[0]。fname,errormessage:
fname is required'},{propertyName:[1]。lname,errormessage:lname is required'}
其中[\
引用集合中项目的索引。不确定这是否符合你的需要。
{ 0:{[{ key:'fname', error:'fname is required' }]}, 1:{[{ key:'lname', error:'lname is required' }]} }