MultiSelect(IEnumerable项,IEnumerable已选中)不起作用

时间:2016-11-15 10:10:28

标签: c# asp.net-mvc

我似乎无法弄清楚这一点。

我的控制器中有这些代码

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 };

1 个答案:

答案 0 :(得分:1)

我似乎无法赞成评论,但也不能回答这个问题。

基本上,正如Emil在评论中所解释的那样,我的错误是存储选定值的变量和提供具有相同名称的列表的变量,因为在这种情况下上限并不重要。