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
}
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
}
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.
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!
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")
<label>@Html.RadioButton("ABC", "YES")Yes</label>
<label>@Html.RadioButton("ABC", "NO")No</label>
<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>
<div class="col-md-10">
Male: @Html.RadioButton("Gender", "Male")
Female: @Html.RadioButton("Gender", "Female")
</div>
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")
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
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).