mvc bind/post booléen à radiobutton
J'ai une colonne dans mon Modèle avec un NULLABLE valeur booléenne. Maintenant mon point de Vue (pour l'édition), je voudrais lier à deux composants radiobutton: Oui & Pas. Si la valeur est null, ce sont juste les deux case d'option non cochée. Comment irais-je faire?
Grâce.
OriginalL'auteur Xuan Vu | 2010-05-06
Vous devez vous connecter pour publier un commentaire.
Une fois que vous avez sélectionné un bouton radio, il n'y a vraiment aucun moyen de le désélectionner (en tant qu'utilisateur). Je suggère que si vous avez vraiment besoin d'un trois-évalués résultat, que vous avez trois boutons radio -- Oui, Non, Ne m'en soucie pas.
Je suis venu avec la même solution, mais de toute façon si
Foo
estnull
laDon't care
radio n'est pas cochée...des idées pourquoi?Je ne suis pas sûr. Il utilise Convertir.ToString() sur le modèle de la propriété (et la valeur). Si le
bool?
est null qui devraient se convertir àstring.Empty
et le bouton doit être vérifié.Yeap. il n'est pas. J'ai une condition qui vérifie si la valeur est nulle et dans ce cas s'applique html l'attribut checked="checked" pour le dernier bouton radio. Il ne fonctionne pas autrement...
Même si ce qui va permettre la sélection d'une nouvelle valeur,
RadioButtonFor()
pas sélectionner les valeurs actuelles de la variable liée. Il doit définir leschecked
attribut conditionnelle. De ce fait, il ne devrait pas être accepté de répondre. Désolé.OriginalL'auteur tvanfosson
L'utilisation de plusieurs Html.RadioButtonFor (m => m.Foo, "true") semble générer du code HTML non valide, car il génère des contrôles à l'identique Id:
J'ai résolu ce problème en rendant les boutons de la radio directement dans le html:
assurez-vous de nommer les boutons de la radio selon la utilisée viewmodel, par exemple: Modèle.Le filtre.HasImage est nommé: le Filtre.HasImage de travailler avec le modèle de liaison
Le "helper html" ressemble à ceci:
OriginalL'auteur Henrik Stenbæk
Je peux sur ce post en retard, mais ici c'est ma solution qui s'occupe de la définition des valeurs. Cela utilisé un Éditeur de modèle. Vous devez spécifier l'Éditeur du nom de modèle. J'ai appelé le mien "NullableBool'
OriginalL'auteur user1971084
C'est un rasoir solution au problème. C'est un très vieux ASP question.
Le problème est que vous devez définir la
checked
attribut parce que leHtml.RadioButtonFor
ne vérifie pas un bouton radio basée sur une nullable bool (qui semble être un défaut).Aussi en mettant les boutons de la radio à l'intérieur de la balise d'étiquette, vous pouvez sélectionner une valeur en cliquant sur l'étiquette.
Partagé/EditorTemplates/Boolean.cshtml
OriginalL'auteur Canvas