Les commutateurs de démarrage retournent “on / off” au lieu de “true / false”

Bootstrap a une utilisation massive, et beaucoup de gens bien plus intelligents que moi y ont travaillé. Je suis donc sûr que le problème que je vais souligner est un non-problème total. .

J’ai un formulaire avec une case à cocher transformé en un commutateur en utilisant bootstrapSwitch()

voici mon html

 

Et js:

 $("#Resend").bootstrapSwitch(); 

Cela produit un interrupteur bascule de démarrage sympa sur ma page. La page est publiée sur une méthode de contrôleur ASP.NET MVC4, qui attend un booléen dans le modèle.

 public class MyModel { public bool Resend { get; set; } } 

Lorsque je poste ce formulaire, mon booléen Resend est toujours faux. Pourquoi? Parce que le commutateur bootstrap affiche une valeur on plutôt que true .

Je ne veux pas changer mon modèle d’un booléen à une chaîne, je suis donc obligé d’intercepter la publication dans jQuery et de changer la valeur de ma case à cocher sur true si elle est on . Cela me semble en arrière. Sûrement si bootstrapSwitch() est utilisé sur une case à cocher, il devrait produire true/false au lieu de on/off

Est-ce que je manque quelque chose?

Dans les spécifications HTML , la valeur par défaut d’une case à cocher est “on” car vous n’avez pas inclus d’atsortingbut value

default / on

Lors de l’obtention, si l’élément a un atsortingbut value, il doit renvoyer la valeur de cet atsortingbut; sinon, il doit renvoyer la chaîne “on” . Lors du paramétrage, il doit définir l’atsortingbut value de l’élément sur la nouvelle valeur.

Vous change html en

 

de sorte que si sa case est cochée, une valeur true sera envoyée dans les données du formulaire et correctement liée à votre propriété boolean (si elle n’est pas cochée, aucune valeur ne sera envoyée et la propriété sera sa valeur par défaut ( false )

J’ajoute simplement mes résultats pour append plus de valeurs à cette question. J’ai le code suivant sur une vue razor

  

Lorsque le formulaire est posté, ModelState était dans vaild dessus, affiche les erreurs suivantes

La valeur ‘valeur’ ​​n’est pas valide pour Assigned.

et quand j’ai déplacé l’atsortingbut value après l’atsortingbut vérifié, il a commencé à fonctionner

  

De cela, je suppose que l’ ordre de l’atsortingbut value est également important. S’il vous plaît, corrigez-moi si je suis usé.