【问题标题】:How to update SelectListItem Selected value inside a List<T>如何更新 List<T> 中的 SelectListItem 选定值
【发布时间】:2016-08-26 16:22:48
【问题描述】:

我有一个 List&lt;SelectListItem&gt; 包含校区,每个 SelectListItem.Text 是校区的名称,SelectListItem.Value 是校区 ID。

然后我有List&lt;string&gt;,其中包含一些校园ID。

我需要将SelectListItemSelected 属性设置为true,以设置与此处List&lt;string&gt; 中的校园ID 匹配的所有校园

我下面的代码只有在List&lt;string&gt; 中只有一个 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 =&gt; x.Selected = campuses.Contains(x.Value)); 而不是你拥有的 foreach 循环
  • 行得通,谢谢
  • 真正的问题是为什么要设置Selected 属性。如果您已生成,则使用@Html.ListBoxFor(), then there is no point since the Selected` 属性会被忽略(在内部该方法会构建自己的IEnumerable&lt;SelectListItem&gt;
  • @StephenMuecke 我不是在创建列表,而是在创建复选框
  • SelectListItem 用于DropDownListFor() 方法:)

标签: c# linq selectlistitem


【解决方案1】:

如果特定值在该列表中,您可以使用 List.Contains Method (T) 返回 true。

CampusesList.ForEach(x => x.Selected = campuses.Contains(x.Value));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-30
    • 2019-05-19
    • 1970-01-01
    • 2012-10-10
    相关资源
    最近更新 更多