12

我的控制器中有视图数据,由列表填充:

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

我将它传递到我的视图中,问题是,如何将 viewdata 列表的内容放入下拉列表中?

显示数据将.name来自列表项。

我知道我可以foreach在 Viewdata 上做一个并创建一个选择列表,但这似乎有点啰嗦

4

3 回答 3

21

您可以使用DropDownList html 助手:

@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 回答