2013-08-01 24 views
0

我上的ASP.NET MVC4(Razor視圖)/ JQuery的應用程序中,我有掛接到出生日期的jQuery的日期選擇器控制工作物業與DateTime類型模型的,如所提到的下面:JQuery的日期選擇控件總是顯示所需雖然它不是

Html.TextBoxFor(m=>m.DOB, new { @class = "dp", id = "dp1",value="" }) 

Jquery的代碼:

型號:

[Display(Name = "Date Of Birth")]  
     public DateTime DOB { get; set; } 

如模型定義所示,我沒有使用Required屬性修飾DOB屬性。問題是,當我點擊提交按鈕時,驗證器總是抱怨DOB is required,而不是。我可以通過使用Html.TextBox而不是TextBoxFor來繞過此問題。但是,我需要在這種情況下使用TextBoxFor。

回答

3

日期時間是值類型,與例如整數相同。所以默認情況下,在MVC的驗證模型中,它將被標記爲需要。你有兩個選擇。第一種選擇:把這個在你的Application_Start()Global.asax文件中:

DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false; 

第二個選項,您可以使用可空類型聲明它:

[Display(Name = "Date Of Birth")]  
public DateTime? DOB { get; set; } 

第一選擇將處理客戶端驗證,但是對於服務器端來說,它會說模型狀態有錯誤。第二個選項適用於客戶端和服務器。

相關問題