从SelectList获取MultiSelectList的SelectListItems

问题描述 投票:0回答:1

我创建了一个SelectList并将其初始化如下:

SelectList _selectList = new SelectList(new List<SelectListItem>
{
    new SelectListItem{Text = "aa", Value="bb"},
    new SelectListItem{Text = "cc", Value = "dd"},
    new SelectListItem{Text = "gg", Value = "ff"}
});

(这是一个示例。通常,我添加15或20个SelectListItems)

然后我尝试获取此_selectList实例的文本和值以设置实例:

foreach (var item in _selectList)
{
    var a = item.Text;
    var b = item.Value;
}

在这一点上,item.Text返回System.Web.Mvc.SelectListItemitem.Value返回null

如果我在调试期间用光标检查qazxsw poi,所有qazxsw poi及其在_selectList下的值并且我无法得到这些值。问题是“我怎么能?”。

c# asp.net-mvc-2
1个回答
0
投票

如果你想使用SelectList,你可以像这样使用它:

SelectListItems

它只是帮助构建项目列表。你绝对可以直接在helper中使用IEnumerable:

base{System.Web.Mvc.MultiSelectList}

编辑:更新的代码。实际上,在查看SelectList源之后,您将看到它派生自MultiSelectList - > var model = new IndexModel() { lista = new SelectList(new string[] { "BMW","Volvo" }), listb = new SelectListItem[] { new SelectListItem {Text = "aa", Value = "bb"}, new SelectListItem {Text = "cc", Value = "dd"}, new SelectListItem {Text = "gg", Value = "ff"} }, listc = new SelectList(new SelectListItem[] { new SelectListItem {Text = "aa", Value = "bb"}, new SelectListItem {Text = "cc", Value = "dd"}, new SelectListItem {Text = "gg", Value = "ff"} }, "Value", "Text") }; ,并使用DataBinder根据给定字段评估文本和值。因此,如果您明确指定字段名称(就像listc一样),您可以使用SelectListItems列表。

MZ

© www.soinside.com 2019 - 2024. All rights reserved.