Razor 如何在选项中创建包含不同文本的下拉列表
我正在从数据库中获取元素列表:Razor 如何在选项中创建包含不同文本的下拉列表,razor,asp.net-mvc-5,selectlist,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的值可以
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
如何创建包含不同文本的下拉列表,如上图所示
任何帮助都将不胜感激,提前感谢:)您的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);
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);
如果ID的值无关紧要,那么包含ID是没有意义的,因此您最好只执行var names=db.YourTable.Select(x=>x.Text.Distinct();ViewBag.Id=新的选择列表(名称)
@StephenMuecke Id的值在某种意义上并不重要,James
只属于1
和2
,而不属于3
,因此,James
的值是1
或2
并不重要,但它肯定需要是其中之一。如果Id的值不重要,然后包含ID是没有意义的,所以您最好只执行var names=db.YourTable.Select(x=>x.Text.Distinct();ViewBag.Id=新的选择列表(名称)
@StephenMuecke Id的值在某种意义上并不重要,James
只属于1
和2
,而不属于3
,因此,James
的值是1
或2
并不重要,但它肯定需要是其中之一。