2012-04-05 5 views
7

IDと名前がデータとして格納されたタイプのストアドプロシージャのリストがあります。 私はモデルにint型のプロパティと同じストアドプロシージャのリストを持っています。 は今、私はこのMvc3でListBoxForを取り込む方法は?

@Html.ListBoxFor(x => x.HobbyId, new MultiSelectList(Model.listHobby, "pkHobbyId", "Hobby")) 

書かれているが、私は

パラメータ「式」のIEnumerableをに評価されなければならないエラーを取得していますListBoxFor

ビューで

にこの情報をバインドしたいとき複数の選択が可能です。

バインドする方法をお手伝いください。

+0

を返すことを確認してくださいモデルも投稿してください。 listHobbyはどんなタイプですか?値を設定する方法は? – Iridio

答えて

7

@Html.ListBoxFor(x => x.HobbyId, Model.listHobby.Select(f => new SelectListItem { Text = f.Hobby, Value = f.pkHobbyId.ToString() }), new { Multiple = "multiple" }) 

listHobbyは、私はあなたを欺くならば、答えるために急いでいますが、GUIDに複数選択リストボックスの結果を得ることができないか、


私のサンプルで申し訳ありませんのIEnumerableリストであることをしてみてくださいint変数(あなたのHoobyIdがどんなタイプであれ)は、結果を取得する配列を持っている必要があります。

public string[] SelectedHobbyIds { get; set; } 

ので、uはあなたのビューモデルを使用すると、マルチチャトラパティ・シャルマ@

+0

はい私はコレクションの中で返さなければならないのに対し、intのホビーIDの値を返しています。 – Rachit

3
@Html.ListBoxFor(x => x.HobbyId, Model.listHobby.Select(f => new SelectListItem { Text = f.Hobby, Value = f.pkHobbyId.ToString() }), new { Multiple = "multiple" }) 

をチェックするポストであろうと、より良い、そのようあなたのビューモデルと間違って何かがなければなりません

お使いのコントローラで

、同様のViewDataを結合し、

ViewData['anyName'] = new SelectList { 
Text = , // text from ur function 
Value = , // Value from function 
Selected = // if required 
} 

との見解では、これを試して、

テストのために
<@Html.ListBox("docImages", ((IEnumerable<SelectListItem>)ViewData["anyName"])) 

、次のようにサンプルSelectListの項目を試してみてください、

ViewData['anyName'] = new List<SelectListItem>{ 
       new SelectListItem {Text = "First", Value = "0"}, 
       new SelectListItem {Text = "Second"), Value = "1"}, 
       new SelectListItem {Text = "Third", Value = "2"} 
        }; 

このサンプルが動作する場合、その後、あなたの機能チェック "(_supp.listDocImagesを)" と、それはIListの

+0

それは私のために働いていません //コントローラ public ActionResult AddEditSupplier(int id) { clsSupplier _supp = new clsSupplier(); _supp.lstDocImgs = _supp.listDocImages(); //正常に動作しています _supp.lstDocFiles = _supp.listDocFiles(); //それは正常に動作しています 戻り値View(_supp); } //ビュー が、ビューの両方が @ Html.ListBoxFor機能していない(X => x.DocumentId、新しいSelectListの(Model.lstDocImgs、 "文書ID"、 "タイトル")) @html。ListBoxFor(x => x.DocumentId、Model.lstDocImgs.Select(f => new SelectListItem {Text = f.Title、Value = f.documentid.ToString()})、new {Multiple = "multiple"}) –

5

を選択し設定するので式のHobbyIdは、IEnumerableをでなければなりません

関連する問題