我正在使用實體框架4爲ASP.NET MVC3/Razor2 Web應用程序提供模型。我正在使用DataAnnotations來實現驗證。我需要將某些日期限制在SQL smalldatetime類型接受的範圍內。實體框架4數據註釋日期範圍驗證
我的問題是,我無法讓RangeAttribute在日期字段中正常工作。有問題的領域模型元數據定義是:
[Display(ResourceType = typeof(Resources.Patient), Name = "DateOfBirth_Name")]
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
[DataType(DataType.Date)]
[Range(typeof(DateTime), "01/01/1900", "06/06/2079", ErrorMessageResourceType = typeof(Resources.Patient), ErrorMessageResourceName = "DateOfBirth_Range")]
public System.DateTime DateOfBirth { get; set; }
有了這個代碼,無論價值我放入日期字段,它是由應用程序視爲無效。如果它的'相關,我正在使用JQuery-UI日期選擇器以及有問題的字段。
任何人都可以幫忙嗎?
謝謝@ Martin4ndersen。正如您預測的那樣,禁用視圖的JS驗證庫啓用了正確的驗證服務器端。本身,博客中顯示的自定義屬性提供了正確的服務器端驗證,並啓用了js。我將採取額外的打擊來實施它所建議的解決方法,以使客戶端支持也能正常工作。慚愧RangeAttribute和js不顯眼的驗證不能一起正常工作。希望在未來的MVC版本中看到這一點。 –