8

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?

3 Answers 3

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.

Sign up to request clarification or add additional context in comments.

Comments

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 });

1 Comment

This does not work for me. I try to iterate the resulting SelectList as decsribed here and get only System.Web.Mvc.SelectListItem as text and null as value.
0
    var foo = FoorePository.Items.Select(s = > new SelectListItem 
                                        {
                                          Text = s.Name, Value = s.Id.ToString()
                                        }
);

Sorry about formatting.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.