2009-10-23 2 views
8

Я новичок в использовании Html.DropDownList в структуре MVC, и мне трудно понять, как выбрать данные из моей базы данных для привязки к DropDownList. Есть ли простой способ вернуть список привязки (например, SelectList) из стандартного запроса LINQ?.net MVC, SelectLists и LINQ

ответ

12

Конструктор SelectList принимает IEnumerable так все, что вам нужно сделать, это передать запрос LINQ конструктору как так

var query = from c in customers 
         select c; 

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

Вы должны сделать это в контроллере и имеют SelectList в вашем ViewModel.

8

Вы хотите использовать select ключевое слово в запросе LINQ:

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

Это не работает для меня. Я пытаюсь перебрать полученный SelectList как decsribed [здесь] (http://stackoverflow.com/a/5285272/1948038) и получить только System.Web.Mvc.SelectListItem как текст и значение null как значение. –

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

К сожалению о форматировании.