有谁知道如何将MultiSelectList初始化为空?
我有一个ListBoxFor控件(MVC3),我希望用户可以使用网页上的其他文本和按钮控件进行填充。
它不喜欢我评论下面这一行......
非常感谢提前
Items = new MultiSelectList(
new[]
{
//new { Id = 1, Name = "item 1" }
},
"Id",
"Name",
selectedItemIds
)
答案 0 :(得分:2)
当您创建类似的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,因为当列表为空时没有用,它只会产生问题。
虽然我仍然不确定你为什么要这样做。我怀疑有更好的方法,如果你能详细说明你的意图。