2011-05-26 29 views
0

我有一個基本形式,它有一個日期字段,我想驗證它在IValidatableObject內。該字段的類型被映射到DateTime屬性,因此如果某人在2011年2月26日輸入,那麼您如何在Validate方法中選擇該屬性?嚴格來說,它幾乎就像用一個沒有意義的DateTime驗證DateTime對象。關於如何解決這個問題或者如何檢測到錯誤日期的任何想法?MVC3 IValidatableObject日期

回答

1

在您的方法上實施IValidatableObject並對此字段進行驗證

例如,

public class YourModel : IValidatableObject 
{ 
    public YourModel() 
    { 
    } 

    [Required(ErrorMessage = "date is required")] 
    public string Date { set; get; } 

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) 
    { 
     DateTime result; 
     bool parseDone = DateTime.TryParse(Date, out result); 
     if (!parseDone) 
     { 
      yield return new ValidationResult(Date + "is invalid", new[] { "Date" }); 
     }    
    } 
} 

我建議使用JQuery驗證和jQueryUI的日曆客戶端

希望它可以幫助

+0

您好我不想做一個日期字符串像你有。我想我已經解決了,如果日期無效,它似乎將自己設置爲DateTime.MinValue,這就是我需要檢查的全部內容。 – fes 2011-05-26 22:03:59