2009-10-23 13 views
8

Soy nuevo en el uso de Html.DropDownList en el marco de MVC y estoy teniendo dificultades para entender cómo seleccionar los datos de mi base de datos para vincularlos a DropDownList. ¿Existe una manera fácil de devolver una lista enlazable (como una lista de selección) de una consulta LINQ estándar?.net MVC, listas selectivas y LINQ

Respuesta

12

El constructor SelectList toma un IEnumerable así que todo lo que necesita hacer es pasar la consulta LINQ al constructor como tal

var query = from c in customers 
         select c; 

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

Usted debe hacer esto en el controlador y tienen la SelectList en su modelo de vista.

8

que desea utilizar la palabra clave select en la consulta LINQ:

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

Esto no funciona para mí. Intento iterar la lista de selección resultante como descifrada [aquí] (http://stackoverflow.com/a/5285272/1948038) y obtengo solo System.Web.Mvc.SelectListItem como texto y nulo como valor. –

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

sentimos acerca del formato.