style poner net mvc link imagen icono con como boton asp asp.net-mvc razor asp.net-mvc-4 radiobuttonfor

asp.net-mvc - net - poner imagen en html actionlink



MVC4: dos botones de opciĆ³n para una sola propiedad de modelo booleano (2)

Estoy intentando encontrar la sintaxis Razor correcta para botones de opción mutuamente excluyentes que reflejan el valor de una propiedad booleana en mi modelo. Mi modelo tiene esto:

public bool IsFemale{ get; set; }

Me gustaría mostrar esto con dos botones de opción, uno "Hombre" y el otro "Mujer", pero todo lo que he intentado hasta ahora no ha reflejado el valor real de la propiedad IsFemale en el modelo. Actualmente, tengo esto:

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

Esto parece persistir el valor correctamente si cambio y actualizo, pero no marca el valor correcto como está marcado. Estoy seguro de que esto es algo estúpido, pero estoy atascado.


En MVC 6 (ASP.NET Core) esto también se puede lograr con ayudantes de etiquetas:

<label> <input type="radio" asp-for="IsFemale" value="false" /> Male </label> <label> <input type="radio" asp-for="IsFemale" value="true" /> Female </label>


Pruebe de esta manera:

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

Y aquí está el código completo:

Modelo:

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

Controlador:

public class HomeController : Controller { public ActionResult Index() { return View(new MyViewModel { IsFemale = true }); } [HttpPost] public ActionResult Index(MyViewModel model) { return Content("IsFemale: " + model.IsFemale); } }

Ver:

@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> }