2009-10-23 20 views
8

MVCフレームワークでHtml.DropDownListを初めて使用していて、DropDownListにバインドするためにデータベースからデータを選択する方法が難しいです。バインド可能なリスト(SelectListなど)を標準のLINQクエリから返す簡単な方法はありますか?.net MVC、SelectLists、およびLINQ

答えて

12

SelectListのコンストラクタはそうあなたがする必要があるすべてはあなたがコントローラでこれを行うと、あなたのViewModelにSelectListのを持っている必要がありそう

var query = from c in customers 
         select c; 

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

のようなコンストラクタにLINQクエリを渡しているのIEnumerableをとります。

8

あなたは、LINQクエリでselectキーワードを使用します:

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

これは私のためには機能しません。結果として得られるSelectListを[here](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() 
             } 
); 

の書式については申し訳ありませんが。

関連する問題