Je suis nouveau à l'aide de la Html.DropDownList dans le cadre MVC et j'ai du mal à comprendre comment sélectionner les données sur ma base de données pour se lier à la DropDownList. Existe-t-il un moyen facile de renvoyer une liste pouvant être liée (telle qu'une liste SelectList) à partir d'une requête LINQ standard?.net MVC, SelectLists, et LINQ
8
A
Répondre
12
Le constructeur SelectList prend un IEnumerable tout ce que vous devez faire est de passer la requête LINQ au constructeur comme si
var query = from c in customers
select c;
var customerList = new SelectList(query, "CustomerId", "CustomerName");
Vous devriez le faire dans le contrôleur et ont le SelectList dans votre ViewModel.
8
Vous voulez utiliser le mot-clé select
dans la requête LINQ:
var foo = new SelectList(from x in FooRepository.Items
select new SelectListItem { Text = x.Name, Value = x.Id });
0
var foo = FoorePository.Items.Select(s = > new SelectListItem
{
Text = s.Name, Value = s.Id.ToString()
}
);
Désolé sur le formatage.
Cela ne fonctionne pas pour moi. J'essaie d'itérer la SelectList résultante comme decsribed [ici] (http://stackoverflow.com/a/5285272/1948038) et obtenir seulement System.Web.Mvc.SelectListItem comme texte et null comme valeur. –