Drop down menu 从“选择不同”中选择下拉菜单

Drop down menu 从“选择不同”中选择下拉菜单,drop-down-menu,asp.net-mvc-5,Drop Down Menu,Asp.net Mvc 5,我试图从不同的值创建一个下拉菜单 SELECT DISTINCT RoleGroup FROM ccf.role 在我的控制器中,我是 var RoleGroups = db.Roles.Select(x => x.RoleGroup).Distinct(); ViewBag.RoleGroups = new SelectList(RoleGroups, "RoleGroup", "RoleGroup", null); 在我看来,我是 @Html.DropDownListFor(m

我试图从不同的值创建一个下拉菜单

SELECT DISTINCT RoleGroup
FROM ccf.role
在我的控制器中,我是

var RoleGroups = db.Roles.Select(x => x.RoleGroup).Distinct();

ViewBag.RoleGroups = new SelectList(RoleGroups, "RoleGroup", "RoleGroup", null);
在我看来,我是

 @Html.DropDownListFor(model => model.RoleGroup,
    (@ViewBag.RoleGroups) as IEnumerable<SelectListItem>,
    new { htmlAttributes = new { @class = "form-control" } })
@Html.DropDownListFor(model=>model.RoleGroup,
(@ViewBag.RoleGroups)作为IEnumerable,
new{htmlAttributes=new{@class=“form control”})
我犯了一个错误


这是什么?

您的查询正在返回
IEnumerable
,而
SelectList
构造函数正在尝试访问
string
RoleGroup
属性(第二个和第三个参数),该属性不存在。这是必须的

ViewBag.RoleGroups = new SelectList(RoleGroups);

虽然很多人喜欢使用var,但我看到了很多困惑/错误,如果您从一开始就使用IEnumerable,这些困惑/错误对您来说会更加明显。