2017-09-09 9 views
0

私はViewBagからの文字列のリストでHtml.DropDownListForを使用しようとしています。 asp.net MVC - DropDownListForの文字列のリストを使用

は基本的に私は、「アダム」のような文字列のリストをViewBagを得た、「トム」、「マイク」等...

DropDownListForの両方にこのリストを渡すことが可能であるならば、私はさまよいました値とテキストは私のリストの項目です。あなたは文字列のリストからSelectListItemのコレクションを生成し、DropDownListForヘルパーとそれを使用することができます

@Html.DropDownListFor(model => model.Name, new SelectList(
      new List<Object>{ 

       new { value = "Adam" , text = "Adam" }, 
       new { value = "Tom" , text = "Tom" }, 
       new { value = "Mike" , text = "Mike" }, 
       new { value = "Jake" , text = "Jake" }, 
      }, 
      "value", 
      "text", 
      2)) 
+0

'一覧'との問題はあなたがそれぞれ(Object)を項目[値]と 'text'のプロパティを参照することができないということです。それらを 'SelectListItem'のリストにマップします。 – Jasen

+0

あなたは[最初のオーバーロード](https://msdn.microsoft.com/en-us/library/system.web.mvc.selectlist.selectlist(v = vs.118).aspxにその文字列のリストを渡そうとしましたか? #Anchor_2)? – GSerg

答えて

1

は私が

例打ちで...ここのforeachを使用することができませんでした方法。

var names = new List<string> {"Adam", "Sam"}; 
ViewBag.Names = names.Select(f => new SelectListItem() {Value = f, Text = f}); 

とビューの

@Html.DropDownListFor(f=>f.Name, ViewBag.Names as IEnumerable<SelectListItem>, 
                    "select one") 
関連する問題