2013-01-21 35 views
0

我有一个模型集合传递给我的视图,我想在下拉列表中显示每个model.property。问题是我的代码中有一个错误,它显示两个重复的项目。在@ Html.DropDownListFor(MVC3)中循环浏览IEnumerable

@model IEnumerable<UserManager.Models.vw_UserManager_Model> 

@Html.Label("BRAD Module:")&nbsp 
@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()来访问模型集合中每个模型的模块名称。但通过这样做我有重复的价值。

见下截图:

enter image description here

MARKET:康乐是显示两次

enter image description here

情报被显示两次。如果我更改此下拉值并返回到此屏幕,它将显示两个重复值。 摘要

有没有人知道写一个更好的方式写LINQ查询?

谢谢。

回答

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 }) 

这应该过滤重复的记录。