Quelqu'un sait-il comment lier un bouton radio Oui / Non à une propriété booléenne d'un modèle fortement typé dans ASP.NET MVC.
Modèle
public class MyClass
{
public bool Blah { get; set; }
}
Vue
<%@ Page Title="blah" Inherits="MyClass"%>
<dd>
<%= Html.RadioButton("blah", Model.blah) %> Yes
<%= Html.RadioButton("blah", Model.blah) %> No
</dd>
Merci
SOLUTION:
Merci pour Brian pour la direction mais c'était le contraire de ce qu'il a écrit. Comme tel -
<%@ Page Title="blah" Inherits="MyClass"%>
<dd>
<%= Html.RadioButton("blah", !Model.blah) %> Yes
<%= Html.RadioButton("blah", Model.blah) %> No
</dd>
c#
asp.net-mvc
model
radio-button
boolean
Brianstewey
la source
la source
Réponses:
Le deuxième paramètre est sélectionné, utilisez donc le! pour sélectionner la valeur no lorsque la valeur booléenne est false.
la source
Si vous utilisez MVC 3 et Razor, vous pouvez également utiliser les éléments suivants:
la source
Voici un exemple plus complet utilisant un
fieldset
pour des raisons d'accessibilité et spécifiant le premier bouton par défaut. Sans afieldset
, à quoi servent les boutons radio dans leur ensemble ne peut pas être déterminé par programme.Modèle
Vue
Vous pouvez ajouter un
@checked
argument à l'objet anonyme pour définir le bouton radio par défaut:Notez que vous pouvez lier à une chaîne en remplaçant
true
etfalse
par les valeurs de chaîne.la source
En m'appuyant légèrement sur la réponse de Ben, j'ai ajouté des attributs pour l'ID afin que je puisse utiliser des étiquettes.
J'espère que ça aide.
la source
L'ajout de balises d'étiquette autour des boutons radio en utilisant du HTML standard résoudra également le problème 'labelfor':
Cliquer sur le texte sélectionne maintenant le bouton radio approprié.
la source
ou MVC 2.0:
la source
Si je peux jeter mon chapeau dans le ring, je pense qu'il existe un moyen plus propre que les réponses existantes de réutiliser la fonctionnalité du bouton radio.
Supposons que vous ayez la propriété suivante dans votre ViewModel :
Vous pouvez exposer cette propriété via un modèle d'éditeur réutilisable :
Commencez par créer le fichier
Views/Shared/EditorTemplates/YesNoRadio.vbhtml
Ajoutez ensuite le code suivant à YesNoRadio.vbhtml :
Vous pouvez appeler l'éditeur de la propriété en spécifiant manuellement le nom du modèle dans votre vue :
Avantages:
la source
J'ai fini par empaqueter ceci dans une méthode d'extension afin (1) que je puisse générer l'étiquette et la radio à la fois et (2) donc je n'ai pas eu à me soucier de spécifier mes propres identifiants:
Usage:
la source