2009-10-23 4 views
8

MVC 프레임 워크에서 Html.DropDownList를 처음 사용하고 DropDownList에 바인딩 할 데이터를 선택하는 방법에 어려움을 겪고 있습니다. 표준 LINQ 쿼리에서 바인딩 목록 (예 : SelectList)을 반환하는 쉬운 방법이 있습니까?.net MVC, SelectLists 및 LINQ

답변

12

selectList의 생성자는 IEnumerable을 그렇게 당신이해야 할 모든 당신은 컨트롤러에서이 작업을 수행하고 뷰 모델의 selectList의가 있어야하므로

var query = from c in customers 
         select c; 

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

처럼 생성자에 LINQ 쿼리를 전달할 것입니다합니다.

8

당신은 LINQ 쿼리에 select 키워드를 사용하려면 : 형식에 대한

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

나를 위해 작동하지 않습니다. 내가 결과로 SelectList를 반복 [여기] (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() 
             } 
); 

죄송합니다.