2009-10-23 22 views
8

Sono nuovo nell'utilizzo di Html.DropDownList nel framework MVC e sto avendo difficoltà a sottolineare come selezionare i dati dal mio database per collegarli a DropDownList. C'è un modo semplice per restituire un elenco associabile (come una lista di selezione) da una query LINQ standard?.net MVC, SelectLists e LINQ

risposta

12

Il costruttore SelectList prende un IEnumerable quindi tutto quello che dovete fare è passare la query LINQ al costruttore in questo modo

var query = from c in customers 
         select c; 

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

Si dovrebbe fare questo nel controller e hanno il SelectList nel vostro ViewModel.

8

si desidera utilizzare la parola chiave select nella query LINQ:

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

Questo non funziona per me. Cerco di ripetere la SelectList risultante come descritto [qui] (http://stackoverflow.com/a/5285272/1948038) e ottenere solo System.Web.Mvc.SelectListItem come testo e null come valore. –

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

Mi dispiace per la formattazione.