我遇到了一個問題,我有一個簡單的添加/編輯窗體,並使用從數據註釋生成的客戶端驗證(jQuery/MicrosoftMvcJQueryValidation.js)通過調用下面我認爲客戶端:作爲複選框使用bool值類型時必需的屬性
<% Html.EnableClientValidation(); %>
這似乎做工精細的大部分元素,但是我有這樣的情況:我有一個使用呈現爲一個複選框布爾屬性:
<%= Html.EditorFor(model => model.Chargeable)%>
可以是真/假(打勾/未打勾)。
由於bool是一個值類型,並且不能爲空,它被呈現爲一個必需的屬性,並且當表單提交時顯示一個錯誤(客戶端),讀到「The Chargeable field is required。」,但是,作爲生成的HTML是兩部分(複選框和隱藏值),它將通過回發驗證。
瀏覽MVC 2的源代碼後,我已經成功地把一個「快速和骯髒的」修復的時刻,這是設置:
DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;
任何其他人有任何意見或建議我如何解決這個問題?
國際海事組織,我不認爲MVC應該設置爲使用Html.EditorFor/Html.CheckBox(For)方法呈現的複選框的客戶端所需驗證器。
注意:我正在使用ASP.NET MVC 2 RC2和來自匹配的MVC Futures版本的MicrosoftMvcJQueryValidation.js。