Dynamique de la liste de cases à cocher et de la liaison de modèle
Je suis en train de créer une vue qui contient une liste de cases à cocher qui est créé dynamiquement à partir d'une base de données, puis de récupérer la liste de ceux qui sont sélectionnés lorsque le formulaire est affiché en arrière.
Mon modèle EF contient une classe:
public class ItemIWouldLikeACheckboxFor {
public int Id { get; set; }
public string Description { get; set; }
}
J'ai un modèle de vue qui contient une liste de ces:
public class PageViewModel {
//various other properties
public List<ItemIWouldLikeACheckboxFor> checkboxList { get; set; }
}
Mon contrôleur méthode get:
public ActionResult Create() {
var viewModel = new PageViewModel();
viewModel.checkboxList = db.ItemIWouldLikeACheckboxFors.ToList();
return View(viewModel);
}
Mon point de vue:
<% using (Html.BeginForm()) { %>
<%-- other stuff here... %>
<% foreach (var item in checkboxList) { %>
<%: Html.CheckBox( <!-- what exactly ?????? -->) %>
<% } %>
<%-- other stuff here...%>
<input type="submit" />
<% } %>
Mon contrôleur méthode post:
[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
}
}
Je n'arrive pas à le faire fonctionner. Mes questions de base sont mélangés en tant que commentaires dans les extraits de code, mais pour résumer:
- Est mon point de vue, le modèle OK? (ai-je besoin d'ajouter quoi que ce soit pour capturer ceux qui sont sélectionnés plutôt que de simplement la liste pour l'afficher?)
- Exactement ce que dois-je mettre dans la vue pour le rendu de chaque case à cocher?
- Comment puis-je accéder aux cases sélectionnées dans le contrôleur, après le post?
OriginalL'auteur Jon | 2010-07-13
Vous devez vous connecter pour publier un commentaire.
Avez-vous vu: http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx?
Nous avons écrit notre propre contrôle pour afficher le code HTML comme
Modèle Semble Ok, nous avons écrit un helper personnalisé, afin que nos pages aspx ressembler à:
Si vous suivez phil haacks post, votre modèle doit se lier automatiquement dans votre contrôleur.
Il y a beaucoup de ressources sur l'aide personnalisée de sorte que vous serez bien! Profitez-en!
OriginalL'auteur Dai Bok
Également une bonne réponse à cette question: CheckBoxList les sélections multiples: difficulté dans le modèle lier
Il a une solution qui utilise un Éditeur personnalisé Modèle.
OriginalL'auteur Rodi