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

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

它不喜欢我注释下面的行...。

提前谢谢了

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

最佳答案

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

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

尝试这个:

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


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

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


我省略了selecteditemID,因为当列表为空时它没有用,它只会造成问题。

尽管我仍然不确定为什么要这样做。我怀疑,如果您可以详细说明自己的意图,那么还有更好的方法。

关于c# - C#-如何将MultiSelectList初始化为空?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12157953/

10-12 12:18