我有一组模型正在传递给我的视图,我想在下拉列表中显示每个model.property。问题是我的代码中有一个错误,它显示了两个重复的项目。
@model IEnumerable<UserManager.Models.vw_UserManager_Model>
@Html.Label("BRAD Module:") 
@Html.DropDownListFor(model => model.FirstOrDefault().module_name, Model.Select(x => new SelectListItem { Text = x.module_name, Value = x.module_name }), new { id = "ddlSelectedBrad", onchange = "chkSelection()" })
我目前正在使用FirstOrDefault()来访问我的模型集合中每个模型的模块名称。但通过这样做,我有一个重复的值。
请参阅以下屏幕截图:
市场:LEISURE显示两次
情报显示两次。如果我更改此下拉列表值并返回此屏幕,则会显示两个重复值。 的摘要
有没有人知道编写LINQ查询的更好方法?
感谢。
答案 0 :(得分:0)
而不是
Model.Select(x => new SelectListItem { Text = x.module_name, Value = x.module_name })
尝试
Model.GroupBy(x => x.module_name).Select(x => new SelectListItem { Text = x.First().module_name, Value = x.First().module_name })
这应该过滤重复的记录。