【问题标题】:ASP.NET MVC 3 : Validation get message listASP.NET MVC 3:验证获取消息列表
【发布时间】:2011-06-08 07:39:03
【问题描述】:

我有这个:

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; }
}

在控制器中,我这样做:

if (!TryValidateModel(myCustomer))
{
  //HERE
  ....
}

“这里”在哪里,我想获取所有错误消息。

一些示例:

  1. 如果缺少“LastName”,我希望得到“我的错误消息
  2. 如果两者都缺失,我想获得一个包含“我的错误消息”和“我的错误消息 2”值的列表(或其他)李>

有什么想法吗?

谢谢,

【问题讨论】:

    标签: asp.net-mvc validation


    【解决方案1】:

    您可以获得所有错误的列表及其各自的字段和消息,如下所示:

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

    【讨论】:

    • 不不,我不想要所有消息,我只想要错误字段的消息
    • @Kris-I,这就是你要得到的 => 参见 Where 子句。它只接受有错误的字段。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-10
    • 1970-01-01
    • 2012-05-15
    • 2012-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多