2009-10-23 6 views
8

Jestem nowy w używaniu Html.DropDownList w środowisku MVC i mam problem ze zrozumieniem, jak wybrać dane z mojej bazy danych do powiązania z DropDownList. Czy istnieje prosty sposób na zwrócenie listy wiążącej (takiej jak SelectList) ze standardowego zapytania LINQ?.net MVC, SelectLists i LINQ

Odpowiedz

12

Konstruktor SelectList zajmuje IEnumerable więc wszystko co musisz zrobić, to przekazać kwerendy LINQ do konstruktora jak tak

var query = from c in customers 
         select c; 

var customerList = new SelectList(query, "CustomerId", "CustomerName"); 

Należy to zrobić w kontrolerze i mają w swoim SelectList ViewModel.

8

Chcesz użyć słowa kluczowego select w kwerendzie LINQ:

var foo = new SelectList(from x in FooRepository.Items 
         select new SelectListItem { Text = x.Name, Value = x.Id }); 
+1

To nie działa dla mnie. Próbuję iterować wynikową SelectList jako decsrybed [tutaj] (http://stackoverflow.com/a/5285272/1948038) i otrzymuję tylko System.Web.Mvc.SelectListItem jako tekst i null jako wartość. –

0
var foo = FoorePository.Items.Select(s = > new SelectListItem 
             { 
              Text = s.Name, Value = s.Id.ToString() 
             } 
); 

Niestety o formatowaniu.