【问题标题】:Loop through IEnumerable in @Html.DropDownListFor (MVC3)循环遍历@Html.DropDownListFor (MVC3) 中的 IEnumerable
【发布时间】:2013-01-21 13:01:22
【问题描述】:

我有一组模型要传递给我的视图,我想在下拉列表中显示每个 model.property。问题是我的代码中有一个错误,它显示了两个重复的项目。

@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() 来访问我的模型集合中每个模型的模块名称。但是这样做我有一个重复的值。

请看下面的截图:

MARKET:LEISURE 出现两次

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

有人知道编写 LINQ 查询的更好方法吗?

谢谢。

【问题讨论】:

    标签: asp.net-mvc-3 linq collections


    【解决方案1】:

    而不是

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

    这应该过滤重复记录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多