【问题标题】:MultiSelect(IEnumerable item, IEnumerable selected) doesn't workMultiSelect(IEnumerable 项目,已选择 IEnumerable)不起作用
【发布时间】:2016-11-15 10:10:27
【问题描述】:

我似乎无法弄清楚。

我的控制器中有这些代码

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 items, IEnum selected)。它不应该工作吗?

或者那里的(选择的IEnum)仍然引用ID,所以我需要创建一个ID而不是字符串的IEnumerable?

List<int> prodSelected = new List<int>() { 1, 3 };

【问题讨论】:

  • 重命名 ViewBag.ProductList ,保存所选值的变量和提供值列表的变量应该不同
  • 标记答案:-)

标签: c# asp.net-mvc


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-11
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-05
    相关资源
    最近更新 更多