Si vous avez une liste de sélection définie sur multiple dans ASP.NET MVC, comment fonctionne le modelbinding?
Que retourne-t-il pour vos éléments sélectionnés, un tableau?
mushrooms green peppers onions tomatoes olives
Oui, par défaut, une liste multiselect sera affichée dans un tableau des valeurs sélectionnées.
Cet article contient des informations supplémentaires, notamment sur l’utilisation de vues fortement typées avec une liste multisélecsortingque.
De l’article lié:
List ToppingIds
. Oui, il retourne un tableau.
Voir le modèle:
public class MyViewModel { public int[] SelectedIds { get; set; } public IEnumerable Items { get; set; } }
Manette:
public ActionResult Index() { var model = new MyViewModel { // fetch the items from some data source Items = Enumerable.Select(x => new SelectListItem { Value = x.Id, Text = "item " + x.Id }) }; return View(model); }
Vue:
@model MyViewModel @Html.ListBoxFor(x => x.SelectedIds, Model.Items)
Dans VegTableViewmodel:
public IEnumerable Vegetables { get; set; }
Dans la liste des contrôleurs: Obtenez les légumes, puis transmettez-la à la propriété Vegetables de VegTableViewModel.
viewmodel.Vegetables = vegetables .Select(d => new MultiSelectList(d.VegName));
Dans la vue:
@Html.ListBoxFor(m => mL, new MultiSelectList(Model.Vegetables.Select(d => d.Items))