Sto provando a creare una vista che contiene un elenco di caselle di controllo create dinamicamente da un database e quindi recuperare l'elenco di quelle selezionate quando il modulo viene postposto.Elenco dinamico di caselle di controllo e associazione modello
Il mio modello EF contiene una classe:
public class ItemIWouldLikeACheckboxFor {
public int Id { get; set; }
public string Description { get; set; }
}
Ho un modello vista che contiene un elenco di questi:
public class PageViewModel {
// various other properties
public List<ItemIWouldLikeACheckboxFor> checkboxList { get; set; }
}
Il mio metodo di controllo get:
public ActionResult Create() {
var viewModel = new PageViewModel();
viewModel.checkboxList = db.ItemIWouldLikeACheckboxFors.ToList();
return View(viewModel);
}
mio view:
<% using (Html.BeginForm()) { %>
<%-- other stuff here... %>
<% foreach (var item in checkboxList) { %>
<%: Html.CheckBox(<!-- what exactly ?????? -->) %>
<% } %>
<%-- other stuff here...%>
<input type="submit" />
<% } %>
Il mio metodo di controllo del messaggio:
[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
}
}
io non riesco a farlo funzionare. Le mie domande di base sono mescolate come commenti nei frammenti di codice, ma per riassumere:
- Il modello di visualizzazione è OK? (devo aggiungere qualcosa per catturare quelli selezionati anziché semplicemente la lista da visualizzare?)
- Cosa devo mettere nella vista per rendere ogni casella di controllo?
- Come accedere alle caselle di controllo selezionate nel controller dopo il post?
Grazie mille, questa combinazione di informazioni mi ha fatto superare la linea. Il prossimo passo (quando avrò più tempo) è quello di legarlo in un aiutante come te ... – Jon
Ci sono molte risorse su assistenti personalizzati quindi starai bene! Godere! –