Występuje problem z prostym formularzem dodawania/edytowania i korzystaniem z walidacji po stronie klienta (jQuery/MicrosoftMvcJQueryValidation.js), która jest generowana z adnotacji danych i włączona po stronie klienta poprzez wywołanie następuje moim zdaniem:Wymagany atrybut dla typu wartości bool używany jako pole wyboru
<% Html.EnableClientValidation(); %>
To wydaje się działać dobrze dla większości elementów, jednak mam instancję gdzie mam właściwość logiczną, która jest uznana jako pole wyboru przy użyciu:
<%= Html.EditorFor(model => model.Chargeable)%>
Może to być prawda/fałsz (zaznaczone/niezaznaczone).
Ponieważ bool jest typem wartości, a nie zerowością, jest renderowany jako wymagana właściwość i wyświetla błąd (po stronie klienta), gdy formularz jest nadawany podczas odczytu "Wymagane jest pole Wymagane.", Jednak Wygenerowany HTML jest dwuczęściowy (zarówno pole wyboru, jak i wartość ukryta), a następnie przejdzie weryfikację.
Po przeglądając kod źródłowy MVC 2, udało mi się umieścić „quick and dirty” naprawić się na moment, jakim jest zestaw:
DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;
Każdy inny ma jakieś pomysły lub propozycje jak mogę to obejść?
IMO, nie sądzę, że MVC powinno ustawiać sprawdzanie poprawności po stronie klienta dla pól renderowanych przy użyciu metod Html.EditorFor/Html.CheckBox (For).
Uwaga: Używam ASP.NET MVC 2 RC2 i MicrosoftMvcJQueryValidation.js z odpowiedniego wydania MVC Futures.