web-dev-qa-db-fra.com

Bouton radio MVC Razor

En vue partielle Je travaille avec des zones de texte comme celle-ci.

@model Dictionary<string, string>
@Html.TextBox("XYZ", @Model["XYZ"])

Comment puis-je générer des radiobuttons et obtenir la valeur souhaitée dans la collection de formulaires sous la forme OUI/NON Vrai/Faux? Actuellement, j'obtiens une valeur nulle pour "ABC" si je sélectionne une valeur quelconque pour le dessous.

   <label>@Html.RadioButton("ABC", @Model["ABC"])Yes</label>
   <label>@Html.RadioButton("ABC", @Model["ABC"])No</label>

Manette

        public int Create(int Id, Dictionary<string, string> formValues)
        {
         //Something Something
        }
50
Nanu

Pour ce faire pour plusieurs éléments, procédez comme suit:

foreach (var item in Model)
{
    @Html.RadioButtonFor(m => m.item, "Yes") @:Yes
    @Html.RadioButtonFor(m => m.item, "No") @:No
}
62
mattytommo

Simplement:

   <label>@Html.RadioButton("ABC", True)Yes</label>
   <label>@Html.RadioButton("ABC", False)No</label>

Mais vous devriez toujours utiliser un modèle fortement typé comme suggéré par cacho.

23
Kuqd

Je résous le même problème avec this SO réponse.

Fondamentalement, il lie le bouton radio à une propriété booléenne d'un modèle fortement typé.

@Html.RadioButton("blah", !Model.blah) Yes 
@Html.RadioButton("blah", Model.blah) No 

J'espère que ça aide!

13
Cacho Santa

Je l'ai fait d'une manière comme:

  @Html.RadioButtonFor(model => model.Gender, "M", false)@Html.Label("Male")
  @Html.RadioButtonFor(model => model.Gender, "F", false)@Html.Label("Female")
12
Anjan Kant
<label>@Html.RadioButton("ABC", "YES")Yes</label>
<label>@Html.RadioButton("ABC", "NO")No</label>
8
Nanu
<p>@Html.RadioButtonFor(x => x.type, "Item1")Item1</p>
<p>@Html.RadioButtonFor(x => x.type, "Item2")Item2</p>
<p>@Html.RadioButtonFor(x => x.type, "Item3")Item3</p>
2
Buhlebesizwe
<div class="col-md-10">
    Male:   @Html.RadioButton("Gender", "Male")
    Female: @Html.RadioButton("Gender", "Female")
</div>                         
1
Debendra Dash

MVC5 Vues rasoir 

L'exemple ci-dessous associera également des étiquettes à des boutons radio (un bouton radio sera sélectionné en cliquant sur l'étiquette correspondante).

// replace "Yes", "No" --> with, true, false if needed
@Html.RadioButtonFor(m => m.Compatible, "Yes", new { id = "compatible" })
@Html.Label("compatible", "Compatible")

@Html.RadioButtonFor(m => m.Compatible, "No", new { id = "notcompatible" })
@Html.Label("notcompatible", "Not Compatible")
1
Prasad De Silva

Cela fonctionne pour moi.

@{ var dic = new Dictionary<string, string>() { { "checked", "" } }; }
@Html.RadioButtonFor(_ => _.BoolProperty, true, (@Model.BoolProperty)? dic: null) Yes
@Html.RadioButtonFor(_ => _.BoolProperty, false, ([email protected])? dic: null) No
1
jayson.centeno

Je voulais partager une façon de faire le bouton radio (et le formulaire HTML complet) sans utiliser l'aide @Html.RadioButtonFor, bien que je pense que @ Html.RadioButtonFor est probablement la meilleure et la plus récente des manières (pour une chose, c'est fortement typé, donc est étroitement liée à theModelProperty). Néanmoins, voici une façon démodée et différente de le faire:

    <form asp-action="myActionMethod" method="post">
        <h3>Do you like pizza?</h3>
        <div class="checkbox">
            <label>
                <input asp-for="likesPizza"/> Yes
            </label>
        </div>
    </form>

Ce code peut être placé dans un fichier myView.cshtml et utilise également des classes pour obtenir le formatage du bouton radio (case à cocher).

0
user5138047