C# - 如何将MultiSelectList初始化为空?

时间:2012-08-28 11:06:21

标签: c# asp.net-mvc-3

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

我有一个ListBoxFor控件(MVC3),我希望用户可以使用网页上的其他文本和按钮控件进行填充。

它不喜欢我评论下面这一行......

非常感谢提前

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

1 个答案:

答案 0 :(得分:2)

当您创建类似的MultiSelectList时,编译器检查的内容之一是您提供的列表(IEnumerable)中是否确实存在IdName字段。 代码的问题在于,当您发送一个空的匿名对象数组时,没有名为IdName的元素,因此编译器无法断定这是有效的代码。

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

试试这个:

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

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

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

我遗漏了selecteditemID,因为当列表为空时没有用,它只会产生问题。

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