2016-11-11 68 views
1

我使用System.Data.SqlTypes.SqlDateTime.MinValueSystem.Data.SqlTypes.SqlDateTime.MaxValue確定日期時間和日期字段使用的代碼下面幾行的範圍。範圍LIMT和日期字段MVC

[Range(typeof(DateTime), "1/1/1753 12:00:00 AM", "12/31/9999 11:59:59 PM", ErrorMessage="\'D2\' must be within 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.")] 
public System.Nullable<System.DateTime> D2{get;set;}//; 

但是,當我輸入的日期11/08/2016 12:00 am到文本框,它拋出一個錯誤信息

「D2」必須在1753年1月1日上午12:00和11:59 12/31/9999下午。

所以,請讓我知道上面的代碼有什麼問題。

+0

http://stackoverflow.com/questions/3025361/c-sharp-datetime-to-yyyymmddhhmmss-format。你需要設置日期時間變量不同,不喜歡的顯示值 – Kapein

+0

做您嘗試使用ISO格式的符號(即YYYY-MM-DD HH:MM:SS)。您的格式取決於語言環境,因此可能會造成「有趣」的行爲。 –

回答

0

可以使用IValidatableObject接口類,檢查日期驗證有像下面

public class Sample : IValidatableObject 
{ 
    public DateTime Date { set; get; } 
    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) 
    { 
     if (Date > new DateTime(2012, 12, 12)) 
     { 
      yield return new ValidationResult("you cant enter it"); 
     } 
    } 
}