コントローラにviewdataがあり、リストが入力されています。
List<employee> tempEmpList = new List<employee>();
tempEmpList = context.employees.ToList();
ViewData["tempEmpList"] = tempEmpList;
これを自分のビューに渡します。問題は、viewdataリストのコンテンツをドロップダウンリストに配置するにはどうすればよいですか?
表示データは.name
リストアイテムから。
Viewdataでforeach
を実行して選択リストを作成できることは知っていますが、これは少し時間がかかるようです
DropDownList htmlヘルパーを使用できます:
@Html.DropDownList("SelectedEmployee",
new SelectList((IEnumerable) ViewData["tempEmpList"]), "Id", "Name")
SelectList
コンストラクターでは、Employee
クラスのどのプロパティをドロップダウン内のテキストと値の両方として使用するかを指定できます(例: "Id"、 "Name")
ドロップダウンの名前("SelectedEmployee"
)は、データをサーバーにポストバックするときに使用されます。
通常の方法でViewData
を設定し、Post
にバインドされるモデルのプロパティにマップするキー名を割り当てます。
ViewData["ModelPropertyName"] = new SelectList(...)
次に、ビューにHtml.DropDownList
..を追加するだけです。
@Html.DropDownList("ModelPropertyName")
ぜひお試しください。 MVC5で試しました
@Html.DropDownList("SelectedEmployee", new SelectList((System.Collections.IEnumerable) ViewData["tempEmpList"],"id","Name"))