2013-01-21 37 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 }) 

這應該過濾重複的記錄。