ASP.NET MVC 3:验证获取消息列表

Kri*_*s-I 6 validation asp.net-mvc

我有这个 :

public class Customer
{
    [DisplayName("Lastname"), StringLength(50)]
    [Required(ErrorMessage="My Error Message")]
    [NotEmpty()]
    public override string LastName { get; set; }

    [DisplayName("Firstname"), StringLength(50)]
    [Required(ErrorMessage="My Error Message 2")]
    [NotEmpty()]
    public override string FirstName{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在控制器中,我这样做:

if (!TryValidateModel(myCustomer))
{
  //HERE
  ....
}
Run Code Online (Sandbox Code Playgroud)

"HERE"在哪里,我想得到所有错误信息.

一些示例案例:

  1. 如果缺少"LastName",我想要" 我的错误信息 "
  2. 如果两者都是mising,我想得到一个List(或其他),其值为" My Error Message "和" My Error Message 2 "

任何的想法 ?

谢谢,

Dar*_*rov 14

你可以得到一个包含各自字段和消息的错误列表,如下所示:

var errors = ModelState
    .Where(x => x.Value.Errors.Count > 0)
    .Select(x => new { x.Key, x.Value.Errors })
    .ToArray();
Run Code Online (Sandbox Code Playgroud)