我似乎无法弄清楚这一点。
我的控制器中有这些代码
Entities db = new Entities();
IQueryable<string> prod = db.Product.Where(p => p.Name != null)
.Select(p => p.Name)
.Distinct();
List<string> prodSelected = new List<string>() { "Pen", "Apple" };
ViewBag.ProductList = new MultiSelectList(prod, prodSelected);
在视图中,我有这一行
@Html.ListBox("productList", ViewBag.ProductList as MultiSelectList, new { style = "width:160px", size = 1 })
假设产生的“prod”有一个字符串列表: -
当我运行代码时,为什么ListBox没有选择“Pen”和“Apple”?根据MSDN参考,我正在使用MultiSelectList(IEnum项目,选择IEnum)。它应该不起作用吗?
或者(IEnum选中)仍然引用ID,所以我需要创建一个IEnumerable的ID而不是字符串?
List<int> prodSelected = new List<int>() { 1, 3 };
答案 0 :(得分:1)
我似乎无法赞成评论,但也不能回答这个问题。
基本上,正如Emil在评论中所解释的那样,我的错误是存储选定值的变量和提供具有相同名称的列表的变量,因为在这种情况下上限并不重要。