Ma classe de modèle possède une propriété bool sans un attribut obligatoire:EditorFor/CheckBoxFor booléen ajoute attribut nécessaire données val HTML sans attribut nécessaire d'être ajouté au modèle
public class Test
{
public bool TestBool1 { get; set; }
}
Puis à mon avis de rasoir J'utilise EditorFor (même chose se produit avec CheckBoxFor ainsi):
<div>
@Html.LabelFor(m => m.TestBool1)
@Html.EditorFor(m => m.TestBool1)
</div>
Il en résulte le code HTML suivant:
<div>
<label for="TestBool1">TestBool1</label>
<input class="check-box" data-val="true" data-val-required="The TestBool1 field is required." id="TestBool1" name="TestBool1" type="checkbox" value="true">
<input name="TestBool1" type="hidden" value="false">
</div>
D'où vient l'attribut html data-val-required?
Y at-il un moyen de l'arrêter sans utiliser @Html.CheckBox("TestBool1", Model.TestBool1)
et de définir le type à bool?
?
Je suis sûr que cela vient du fait qu'un 'bool' doit avoir une valeur réelle. Je serais prêt à parier que si c'était un bool ?, il ne rendrait pas cet attribut 'data-val-required'. –
@MichaelPerrenoud La modification de 'bool?' Nécessitait un nouveau EditorTemplate pour utiliser EditorFor (CheckBoxFor ne fonctionne pas du tout) de sorte qu'il crée une case à cocher au lieu d'une liste déroulante. –