mvc从ienumerable模型填充下拉列表

时间:2015-07-27 14:20:41

标签: asp.net-mvc model ienumerable dropdownlistfor

我必须在Dropdownlistfor中填充不同公司名称

@model IEnumerable<Zykod.Data.Models.CUtilityModel>

我尝试了以下方法。没有什么工作。

@Html.DropDownListFor(Model.Select(i => i.CompanyName).Distinct().ToList(), new List<SelectListItem>(), new { @class = "input-large form-control" })

@Html.DropDownList("CompanyName", new SelectList(Model).Distinct())

@Html.DropDownListFor(model => model.CompanyName, new List<SelectListItem>(), new { @class = "input-large form-control" })

1 个答案:

答案 0 :(得分:2)

第三次尝试是最接近的一次。

@Html.DropDownList("CompanyName",
                   new SelectList(Model.Select(i => i.CompanyName).Distinct().ToList()),
                   new { @class = "input-large form-control" })

为了解释这里使用的DropDownList的位重载,它的第一个参数指定了将保存发布值的字段,第二个参数指定了可能值的列表,第三个参数指定了第三个参数,正如您已经弄清楚的那样,适用于各种类似html的属性。

请注意,为了接受控制器中的已发布值,您需要确保相应的操作方法接受string CompanyName参数或具有相同属性的某个对象。