2013-04-09 69 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