2

有谁知道如何将 MultiSelectList 初始化为空?

我有一个 ListBoxFor 控件 (MVC3),我希望用户通过使用网页上的其他文本和按钮控件来填充它。

它不喜欢我评论下面的行......

提前谢谢了

Items = new MultiSelectList(
    new[] 
    {
        //new { Id = 1, Name = "item 1" }                        
    },
    "Id",
    "Name",
    selectedItemIds
)
4

1 回答 1

2

当您创建这样的 MultiSelectList 时,编译器检查的一件事是您提供的列表(IEnumerable)中是否确实存在IdName字段。您的代码的问题是没有命名的元素Id,并且Name当您发送一个空的匿名对象数组时,编译器无法断定这是有效的代码。

如果您希望能够发送一个空数组,则必须避免使用匿名类型。

尝试这个:

    public struct myListType
    {
        public int Id;
        public string Name;
    }

现在您可以按如下方式创建 MultiSelectList:

Items = new MultiSelectList(
    new List<myListType>(),
    "Id",
    "Name"
);

我省略了 selecteditemIDs,因为当列表为空时它没有用,它只会产生问题。

虽然我仍然不确定你为什么要这样做。我怀疑有更好的方法,如果你能详细说明你的意图。

于 2012-08-28T11:39:29.717 回答