使用DataTypeAttribute验证日期

时间:2010-05-22 15:00:03

标签: asp.net-mvc-2

我在理解如何使用MVC2验证日期(DOB)方面遇到了一些困难。我想要做的是1.日期是否为有效日期,2。日期是否过去13年。例如,要验证电子邮件,请使用以下代码:

[Required(ErrorMessage = "Email address is required.")]  
[StringLength(320, ErrorMessage = "Email must be less than 320 characters.")]  
[Email(ErrorMessage = "This email address is invalid.")]  
public string email { get; set; }  

验证我使用的电子邮件:

public class EmailAttribute : RegularExpressionAttribute
{        
    public EmailAttribute()
        : base("insert long regex expression here") { }
}

非常感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:2)

试试这个:

public class YearsInThePast : RangeAttribute
{
    public YearsInThePast(int yearsInThePast) : base(
        typeof(DateTime), 
        DateTime.MinValue.ToString(), 
        DateTime.Now.AddYears(-yearsInThePast).ToString()
    )
    { }
}

你的模特:

public class MyModel
{
    [YearsInThePast(13, ErrorMessage = "Date must be 13 years in the past")]
    public DateTime Date { get; set; }
}