我从数据库中获取元素列表:
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
的价值可以是1
或2
,无关紧要,我将获得的文字始终为James
如何创建包含不同Text
的下拉菜单,如上所示?
任何帮助都将深表感谢,提前感谢:)
答案 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);