【发布时间】:2016-08-26 16:22:48
【问题描述】:
我有一个 List<SelectListItem> 包含校区,每个 SelectListItem.Text 是校区的名称,SelectListItem.Value 是校区 ID。
然后我有List<string>,其中包含一些校园ID。
我需要将SelectListItem 的Selected 属性设置为true,以设置与此处List<string> 中的校园ID 匹配的所有校园
我下面的代码只有在List<string> 中只有一个 id 时才有效
List<SelectListItem> CampusesList = ...
...
List<string> campuses = GetCampusesIds(id);
foreach (string campus in campuses) {
CampusesList.ForEach(x => { x.Selected = x.Value == campus; });
}
我该如何解决这个问题?
谢谢
【问题讨论】:
-
CampusesList.ForEach(x => x.Selected = campuses.Contains(x.Value));而不是你拥有的 foreach 循环 -
行得通,谢谢
-
真正的问题是为什么要设置
Selected属性。如果您已生成,则使用@Html.ListBoxFor(), then there is no point since theSelected` 属性会被忽略(在内部该方法会构建自己的IEnumerable<SelectListItem>) -
@StephenMuecke 我不是在创建列表,而是在创建复选框
-
SelectListItem用于DropDownListFor()方法:)
标签: c# linq selectlistitem