在dropdownlist綁定數據庫的時候,經常會有一些重複項需要刪除,結合之前做二階聯動時的案例對程式做了一下修改:
model:
性別:@Html.DropDownList("SEX", @ViewData["SEX"] as IEnumerable<SelectListItem>,"--Please Choose--")
性別_不重複: @Html.DropDownList("SEX_SEL", @ViewData["SEX_SEL"] as IEnumerable<SelectListItem>, "--Please Choose--")
contoller:
public ActionResult Index()
{
List<namelist> llNameList = buildNameList(); //模擬數據源
ViewData["SEX"]=llNameList.Select(i=>new SelectListItem{Value=i.sex,Text=i.sex});
//增加code
Dictionary<string, int> dic = new Dictionary<string, int>();
int index = 1;
for (int _count = 0; _count < llNameList.Count; _count++)
{
if (!dic.ContainsKey(llNameList[_count].sex))
{
dic.Add(llNameList[_count].sex, index++);
}
}
ViewData["SEX_SEL"] = dic.ToList().Select(i => new SelectListItem { Value = i.Key.ToString(),Text=i.Key.ToString()});
return View();
}
效果截圖:
這裏主要用到了dictionary和containskey結合,檢索之後再查詢制定鍵,關於dictionary說明,可參見https://msdn.microsoft.com/zh-cn/library/xfhwa508(VS.80).aspx,containskey可參見https://msdn.microsoft.com/zh-cn/library/system.collections.hashtable.containskey(v=VS.80).aspx