Question

Je suis en cours d'exécution dans un problème où je simple add / formulaire de modification et l'utilisation de validation côté client (jQuery / MicrosoftMvcJQueryValidation.js) qui est généré à partir des annotations de données et activé côté client en appelant ce qui suit à mon avis:

<% Html.EnableClientValidation(); %>

Cela semble fonctionner très bien pour la plupart des éléments, mais j'ai une instance où j'ai une propriété booléenne qui est rendu comme une case à cocher en utilisant:

<%= Html.EditorFor(model => model.Chargeable)%>

qui peut être vrai / faux (tic tac / décochée).

Cependant, comme le bool est un type de valeur, et non annulable, il est rendu sous la forme d'une propriété requise et affiche une erreur (côté client) lorsque le formulaire est soumis lecture « Le champ chargeable est nécessaire. », En tant que HTML généré est en deux parties (les deux case à cocher et valeur cachée), il passera le retour après validation.

Après avoir parcouru le code source MVC 2, je suis parvenu à mettre un « rapide et sale » fixer en pour le moment, ce qui est de définir:

DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;

Toute autre a des idées ou des suggestions sur la façon dont je peux contourner cela?

OMI, je ne pense pas que MVC devrait donner le nécessaire côté client validateur pour les représenter à l'aide des cases à cocher méthodes Html.EditorFor / Html.CheckBox (Pour).

Note:. J'utilise RC2 ASP.NET MVC 2 et les MicrosoftMvcJQueryValidation.js de la version Futures MVC correspondant

Était-ce utile?

La solution

Je suppose que la meilleure façon de le manipuler est d'appeler les règles ( « supprimer », [règles]) fonction sur les éléments (principalement des cases à cocher) que je veux supprimer la validation côté client à partir de:

<script type="text/javascript">
  $(document).ready(function() {
    $('#Chargeable').rules('remove', 'required');
  });
</script>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top