Asp.net mvc 如何获取对象列表MVC/WebAPI的ModelState错误

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

您好,我有下面的代码片段,其中我在“errors”变量中获得了所有模型错误,但我希望它们根据对象单独出现。有人能建议如何有效地实现这一目标吗

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' }]} }