Comprendre la méthode $ .validator.unobtrusive.adapters.addBool ()

J'essaie de comprendre quelque chose.

De ce billet de blog http://bradwilson.typepad.com/blog/2010/10/mvc3-unobtrusive-validation.html

De transition HTML et jQuery Validate: Adaptateurs

La rédaction d'un côté client du programme de validation comporte deux étapes: la rédaction de la
validateur pour jQuery de validation et d'écriture de la carte qui prend la
les valeurs de paramètre de l'attribut HTML et il se transforme en jQuery
Valider les métadonnées
. L'ancien topic n'est pas dans le champ d'application de ce blog
post (car il est vraiment pas MVC spécifiques).

Il y a un adaptateur collection disponible à
jQuery.programme de validation.discrète.les adaptateurs. Accroché à la carte
la collection est la carte d'enregistrement de la méthode (ajouter) et trois accompagnateurs
qui peut être utilisé pour enregistrer très commun les types de cartes (addBool,
addSingleVal, et addMinMax).

Remarquez qu'il dit deux étapes.

Mais si vous jetez un oeil à ce post MVC3: faire case requis via jQuery valider? vous avez seulement besoin de la deuxième étape ("l'écriture de la carte") pour que la validation des travaux par l'ajout de cette ligne de code:

$.validator.unobtrusive.adapters.addBool("mandatory", "required");

J'ai testé le code dans un nouveau MVC 4 Internet App et il fonctionne très bien, voici le supersimple de l'échantillon.

Modèle De Vue

public class SimpleViewModel
{
    [Mandatory(ErrorMessage = "You must agree to the Terms to register.")]
    [Display(Name = "Terms Accepted")]
    public bool IsTermsAccepted { get; set; }
}

Validation De L'Attribut

public class MandatoryAttribute : ValidationAttribute, IClientValidatable
{
    public override bool IsValid(object value)
    {
        return (!(value is bool) || (bool)value);
    }

    public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
    {
        ModelClientValidationRule rule = new ModelClientValidationRule();
        rule.ErrorMessage = FormatErrorMessage(metadata.GetDisplayName());
        rule.ValidationType = "mandatory";
        yield return rule;
    }
}

Vue

@model MvcApplication2.Models.SimpleViewModel

@{
    ViewBag.Title = "";
}    

@using (Html.BeginForm()) {
    @Html.ValidationSummary()
    @Html.CheckBoxFor(model => model.IsTermsAccepted)
    @Html.ValidationMessageFor(model => model.IsTermsAccepted)
    <input type="submit" value="Send" />
}

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
    <script type="text/javascript">
        $.validator.unobtrusive.adapters.addBool("mandatory", "required");
    </script>
}

Donc en gros j'ai trois questions:

  1. $.programme de validation.discrète.les adaptateurs.addBool("obligatoire", "requis"); vraiment la seule chose dont vous avez besoin en plus de l'écriture d'un attribut de classe?
  2. qu'est ce qu'il n'en coulisses?
  3. où puis-je trouver une documentation complète sur la addBool?

source d'informationauteur PussInBoots