I am new to using the Html.DropDownList in the MVC framework and am having a hard time understading how to select the data out my database to bind to the DropDownList. Is there an easy way to return a bindable list (such as a SelectList) from a standard LINQ query?
Asked
Active
Viewed 1.1k times
3 Answers
12
The SelectList constructor takes an IEnumerable so all you need to do is pass the LINQ query to the constructor like so
var query = from c in customers
select c;
var customerList = new SelectList(query, "CustomerId", "CustomerName");
You should do this in the Controller and have the SelectList in your ViewModel.

willbt
- 1,875
- 13
- 11
8
You want to use the select
keyword in the LINQ query:
var foo = new SelectList(from x in FooRepository.Items
select new SelectListItem { Text = x.Name, Value = x.Id });

Chris Charabaruk
- 4,367
- 2
- 30
- 57
-
1This does not work for me. I try to iterate the resulting SelectList as decsribed [here](http://stackoverflow.com/a/5285272/1948038) and get only System.Web.Mvc.SelectListItem as text and null as value. – Pavel K Sep 25 '13 at 12:33
0
var foo = FoorePository.Items.Select(s = > new SelectListItem
{
Text = s.Name, Value = s.Id.ToString()
}
);
Sorry about formatting.

olq
- 151
- 1
- 2
- 9