12

リストによって入力されるコントローラーにビューデータがあります。

List<employee> tempEmpList = new List<employee>();
tempEmpList = context.employees.ToList();
ViewData["tempEmpList"] = tempEmpList;

これを自分のビューに渡しています。問題は、viewdata リストの内容をドロップダウン リストに配置するにはどうすればよいかということです。

表示データは.nameリスト項目からとなります。

foreachViewdata を実行して選択リストを作成できることはわかっていますが、これは少し長すぎるようです。

4

3 に答える 3

21

DropDownListhtmlヘルパーを使用できます。

@Html.DropDownList("SelectedEmployee", 
    new SelectList((IEnumerable) ViewData["tempEmpList"]), "Id", "Name")

コンストラクターではSelectList、クラスのどのプロパティをEmployeeドロップダウン内のテキストと値の両方として使用するかを指定できます(例: "Id"、 "Name")

ドロップダウンの名前("SelectedEmployee")は、データをサーバーにポストバックするときに使用されます。

于 2012-08-23T12:00:35.383 に答える
10

通常の方法で設定し、ViewDataバインドされるモデルのプロパティにマップするキー名を割り当てますPost...

ViewData["ModelPropertyName"] = new SelectList(...)

Html.DropDownList次に、ビューに...を追加するだけです

@Html.DropDownList("ModelPropertyName")
于 2013-12-17T09:34:23.413 に答える
5

そちらでお試しください。私はMVC5で試しました

@Html.DropDownList("SelectedEmployee", new SelectList((System.Collections.IEnumerable) ViewData["tempEmpList"],"id","Name"))

于 2014-11-10T12:53:13.817 に答える