63 votes

MVC4: deux boutons radio pour une propriété de modèle booléen unique

Je suis d'essayer de trouver la bonne syntaxe Razor pour mutuellement exclusives, des boutons radio, qui reflètent la valeur d'une propriété booléenne sur mon modèle. Mon modèle:

public bool IsFemale{ get; set; }

Je voudrais afficher ce avec deux boutons radio, un "Mâle" et "Femelle", mais tout ce que j'ai essayé jusqu'à présent n'a pas reflété la valeur réelle de l' IsFemale propriété sur le modèle. Actuellement, j'ai ceci:

@Html.RadioButtonFor(model => model.IsFemale, !Model.IsFemale) Male
@Html.RadioButtonFor(model => model.IsFemale, Model.IsFemale) Female

Cela semble persister la valeur correctement si je modifier et de mettre à jour, mais ne marque pas la valeur correcte en tant que bagages. Je suis sûr que c'est quelque chose de stupide, mais je suis coincé.

117voto

Darin Dimitrov Points 528142

Essayez comme ça:

 @Html.RadioButtonFor(model => model.IsFemale, "false") Male
@Html.RadioButtonFor(model => model.IsFemale, "true") Female
 

Et voici le code complet:

Modèle:

 public class MyViewModel
{
    public bool IsFemale { get; set; }
}
 

Manette:

 public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View(new MyViewModel
        {
            IsFemale = true
        });
    }

    [HttpPost]
    public ActionResult Index(MyViewModel model)
    {
        return Content("IsFemale: " + model.IsFemale);
    }
}
 

Vue:

 @model MyViewModel

@using (Html.BeginForm())
{
    @Html.RadioButtonFor(model => model.IsFemale, "false", new { id = "male" }) 
    @Html.Label("male", "Male")

    @Html.RadioButtonFor(model => model.IsFemale, "true", new { id = "female" })
    @Html.Label("female", "Female")
    <button type="submit">OK</button>
}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X