有谁知道如何将MultiSelectList初始化为空?
我有一个ListBoxFor控件(MVC3),希望用户通过使用网页上的其他文本和按钮控件进行填充。
它不喜欢我注释下面的行...。
提前谢谢了
Items = new MultiSelectList(
new[]
{
//new { Id = 1, Name = "item 1" }
},
"Id",
"Name",
selectedItemIds
)
最佳答案
当您创建这样的MultiSelectList时,编译器检查的一件事是,您提供的列表(IEnumerable)中是否确实存在Id
和Name
字段。
您的代码的问题在于,当您发送一个空的匿名对象数组时,没有名为Id
和Name
的元素,因此编译器无法得出结论,这是有效的代码。
如果希望能够发送一个空数组,则必须避免使用匿名类型。
尝试这个:
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/