Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MultiSelect(IEnumerable项,IEnumerable选定项)不';行不通_C#_Asp.net Mvc - Fatal编程技术网

C# MultiSelect(IEnumerable项,IEnumerable选定项)不';行不通

C# MultiSelect(IEnumerable项,IEnumerable选定项)不';行不通,c#,asp.net-mvc,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>(

我似乎无法理解这一点

我的控制器里有这些代码

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);
假设生成的“prod”有一个字符串列表:-

  • “笔”
  • “菠萝”
  • “苹果”
当我运行代码时,为什么列表框不选择“笔”和“苹果”?根据MSDN参考,我使用的是MultiSelectList(IEnum项目,IEnum选择)。它不应该工作吗

或者(IEnum selected)仍然引用ID,所以我需要用ID的IEnumerable代替字符串

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

我似乎无法对评论投赞成票,但也不能让这个问题没有答案


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

重命名ViewBag.ProductList,保存所选值的变量和提供值列表的变量应不同标记答案:-)
List<int> prodSelected = new List<int>() { 1, 3 };