2013-04-09 73 views
2

我为DateTime创建了一个自定义验证属性,该属性继承自RequiredAttribute。出于某种原因,MVC中内置DateTime验证的某种类型正在重写我的自定义验证,因为当我输入dd作为日期的值时,我不断收到错误消息“值'dd'对Date无效”。我如何得到它使用我的自定义验证器,以便我自己的错误消息得到显示呢?覆盖DateTime的默认验证

视图模型

public class MyViewModel 
{ 
    [Required(ErrorMessage = "Name is required")] 
    [Display(Name = "Name")] 
    public string Name { get; set; } 

    [DateValidation(ErrorMessage = "A valid date is required")] 
    [Display(Name = "Date")] 
    public DateTime Date { get; set; } 
} 

验证

public class DateValidationAttribute : ValidationAttribute 
{ 
    public override bool IsValid(object value) 
    { 
     DateTime dt; 

     return DateTime.TryParse(value.ToString(), out dt); 
    } 
} 

针对拉尔斯回答: 我如何得到它使用在我的模型,所以我可以的验证属性创建的错误信息为使用相同验证属性的不同模型属性创建不同的错误消息?

+1

可以张贴代码与您的属性你的模型? – cdlong 2013-04-09 21:35:38

+0

我已经发布了我的代码的缩短版本 – RiceRiceBaby 2013-04-09 21:41:18

回答

0

里面IsValid你可以改变ErrorMessage

public override bool IsValid(object value) 
{ 
    ErrorMessage = "Date is invalid."; 
+1

如何获取它以使用在我的模型的验证属性中创建的错误消息,以便我可以为使用相同验证属性的不同模型属性创建不同的错误消息? – RiceRiceBaby 2013-04-10 16:47:55