如何创建包含不同文本选项的下拉列表

时间:2016-12-09 14:37:43

标签: razor asp.net-mvc-5 selectlist

我从数据库中获取元素列表:

ViewBag.Id = new SelectList(db.UserRegister, "Id", "SystemCode");

和视图:

@Html.DropDownList("Id", null })

我得到的下拉结果是:

Value | Text
  1   | James
  2   | James
  3   | John

我想要的是:

Value | Text
  1   | James
  3   | John

上述文字James的价值可以是12,无关紧要,我将获得的文字始终为James

如何创建包含不同Text的下拉菜单,如上所示?

任何帮助都将深表感谢,提前感谢:)

1 个答案:

答案 0 :(得分:0)

您的linq查询需要执行GroupBy。

db.UserRegister.GroupBy(x => x.SystemCode)
                    .Select(g => new SelectListItem {Value = g.Min(w => w.Id), Text = g.Key})
                    .ToList();

然后我将你的观点改为

@Html.DropDownListFor(x => x.Id, ViewBag.Id);