Lista dinâmica de caixas de seleção e encadernação de modelos
Estou tentando criar uma exibição que contém uma lista de caixas de seleção criadas dinamicamente a partir de um banco de dados e, em seguida, recuperar a lista de caixas selecionadas quando o formulário é postado novamente.
Meu modelo EF contém uma classe:
public class ItemIWouldLikeACheckboxFor {
public int Id { get; set; }
public string Description { get; set; }
}
Eu tenho um modelo de exibição que contém uma lista destes:
public class PageViewModel {
// various other properties
public List<ItemIWouldLikeACheckboxFor> checkboxList { get; set; }
}
Meu controlador get método:
public ActionResult Create() {
var viewModel = new PageViewModel();
viewModel.checkboxList = db.ItemIWouldLikeACheckboxFors.ToList();
return View(viewModel);
}
Minha visão:
<% using (Html.BeginForm()) { %>
<%-- other stuff here... %>
<% foreach (var item in checkboxList) { %>
<%: Html.CheckBox( <!-- what exactly ?????? -->) %>
<% } %>
<%-- other stuff here...%>
<input type="submit" />
<% } %>
Meu método de postagem do 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
}
}
Parece que não consigo fazê-lo funcionar. Minhas perguntas básicas são misturadas como comentários nos trechos de código, mas para recapitular:
O meu modelo de exibição está OK? (preciso adicionar algo para capturar os selecionados, em vez de simplesmente a lista a ser exibida?)O que exatamente devo colocar na exibição para renderizar cada caixa de seleção?Como acesso as caixas de seleção selecionadas no controlador após a postagem?