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?
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.
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 });
var foo = FoorePository.Items.Select(s = > new SelectListItem
{
Text = s.Name, Value = s.Id.ToString()
}
);
Sorry about formatting.
来源:https://stackoverflow.com/questions/1615583/net-mvc-selectlists-and-linq