Estoy tratando de crear una vista que contenga una lista de casillas de verificación que se crean dinámicamente desde una base de datos, y luego recuperar la lista de las seleccionadas cuando se reenvía el formulario.Lista dinámica de casillas de verificación y vinculación del modelo
Mi modelo EF contiene una clase:
public class ItemIWouldLikeACheckboxFor {
public int Id { get; set; }
public string Description { get; set; }
}
Tengo un modelo de vista que contiene una lista de estos:
public class PageViewModel {
// various other properties
public List<ItemIWouldLikeACheckboxFor> checkboxList { get; set; }
}
Mi método controlador get:
public ActionResult Create() {
var viewModel = new PageViewModel();
viewModel.checkboxList = db.ItemIWouldLikeACheckboxFors.ToList();
return View(viewModel);
}
Mi vista:
<% using (Html.BeginForm()) { %>
<%-- other stuff here... %>
<% foreach (var item in checkboxList) { %>
<%: Html.CheckBox(<!-- what exactly ?????? -->) %>
<% } %>
<%-- other stuff here...%>
<input type="submit" />
<% } %>
Mi método post controlador:
[HttpPost]
public ActionResult Create(PageViewModel viewModel) {
// do stuff with other fields
// I would like to do something like:
foreach (var item in selectedCheckBoxes) {
// do stuff
}
}
Me parece que no puede conseguir que funcione. Mis preguntas básicas están mezcladas como comentarios en los fragmentos de código, pero para recapitular:
- ¿Mi modelo de vista está OK? (¿Tengo que agregar algo para capturar los seleccionados en lugar de simplemente la lista para mostrar?)
- ¿Qué debería poner exactamente en la vista para mostrar cada casilla de verificación?
- ¿Cómo accedo a las casillas de verificación seleccionadas en el controlador después de la publicación?
Muchas gracias, esa combinación de información me hizo pasar de la raya. El siguiente paso (cuando tengo más tiempo) es vincularlo a un ayudante como lo hizo ... – Jon
¡Hay muchos recursos en ayudantes personalizados para que esté bien! ¡Disfrutar! –