Soy bastante nuevo en el mundo MVC de ASP.net y estoy tratando de encontrar la manera de renderizar un grupo de casillas de verificación que son fuertemente tipeado a un modelo de vista. En webforms solo usaría el control checkboxlist, pero estoy un poco perdido con MVC.Cómo renderizo un grupo de casillas de verificación usando MVC 4 y modelos de vista (fuertemente tipados)
Estoy construyendo un formulario de contacto simple para una empresa de planificación de bodas y necesito pasar cualquier valor de casilla de verificación que el usuario seleccione a mi controlador.
La forma casillas de verificación deben tener este aspecto:
Su ayuda sería muy apreciada. ¡Gracias!
Esto es lo que tengo hasta ahora.
CONTROLADOR
[HttpPost]
public ActionResult Contact(ContactViewModel ContactVM)
{
if (!ModelState.IsValid)
{
return View(ContactVM);
}
else
{
//Send email logic
return RedirectToAction("ContactConfirm");
}
}
vista del modelo
public class ContactViewModel
{
[Required]
public string Name { get; set; }
[Required]
public string Phone { get; set; }
[Required]
[DataType(DataType.EmailAddress)]
public string Email { get; set; }
[Required]
public string Subject { get; set; }
public IEnumerable<SelectListItem> SubjectValues
{
get
{
return new[]
{
new SelectListItem { Value = "General Inquiry", Text = "General Inquiry" },
new SelectListItem { Value = "Full Wedding Package", Text = "Full Wedding Package" },
new SelectListItem { Value = "Day of Wedding", Text = "Day of Wedding" },
new SelectListItem { Value = "Hourly Consultation", Text = "Hourly Consultation" }
};
}
}
//Not sure what I should do for checkboxes...
}
VISTA
@model NBP.ViewModels.ContactViewModel
@{
ViewBag.Title = "Contact";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@using (Html.BeginForm())
{
<div id="ContactContainer">
<div><span class="RequiredField">* </span>Your Name:</div>
<div>
@Html.TextBoxFor(model => model.Name)
</div>
<div><span class="RequiredField">* </span>Your Phone:</div>
<div>
@Html.TextBoxFor(model => model.Phone)
</div>
<div><span class="RequiredField">* </span>Your Email:</div>
<div>
@Html.TextBoxFor(model => model.Email)
</div>
<div>Subject:</div>
<div>
@Html.DropDownListFor(model => model.Subject, Model.SubjectValues)
</div>
<div>Vendor Assistance:</div>
<div>
<!-- CHECKBOXES HERE -->
</div>
<div>
<input id="btnSubmit" type="submit" value="Submit" />
</div>
</div>
}
Tengo curiosidad ... ¿Incluso trataste de escribir Html.Check ...? –
sí, pero no estoy seguro de cómo los conectaría con mi modelo de vista ... – Maddhacker24