关于c#:如何验证多个数据注解并在视图中返回一条错误信息

How to validate multiple data annotations and return one error message in view

我正在使用带有 MVC2 的数据注释来验证出生日期。出生日期有 3 个不同的字段。 (月、日和年)(它们必须是三个单独的字段)

现在我对每个字段都有单独的数据注释。我怎样才能使所有三个字段都得到验证并在我的视图中显示一条错误消息。我现在的设置会为每个字段创建一条错误消息。

如果这些字段中的任何一个引发错误,我想显示一个通用错误消息,例如 "Date of Birth invalid".

月份字段:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
        [Required]
        [DisplayName("Month")]
        public IEnumerable<string> Months
        {
            get
            {
                if (_Months == null)
                {
                    List<string> months = new List<string>();
                    months.Add("-- Select Month --");
                    months.AddRange(DateTimeFormatInfo.CurrentInfo.MonthNames.Select(Month => Month).ToList());
                    months.RemoveAt(months.Count - 1);
                    _Months = months;
                }
                return _Months;
            }
            set { _Months = value; }
        }

        private IEnumerable<string> _Months;

        public string SelectedMonth {get; set;}

日字段:

1
2
3
4
    [Required]
    [DisplayName("Day")]
    [Range(1,31, ErrorMessage ="Not a valid day")]
    public int? Day { get; set; }

年份字段:

1
2
3
4
5
    [Required]
    [DisplayName("Year")]
    [Range(1900,9999, ErrorMessage ="Not a valid year")]
    [ValidateBirthYear]
    public int? Year { get; set; }

你可能想看看这个问题。他们也在寻求验证分为三个字段的日期时间。