2016-11-15 100 views
1

我似乎無法弄清楚這一點。MultiSelect(IEnumerable item,IEnumerable selected)不起作用

我有這些代碼在我的控制器

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

假設產生的「刺」上有一個字符串列表: -

  • 「筆」
  • 「菠蘿」
  • 「蘋果」

當我運行的代碼,爲什麼ListBox中不選擇「筆」和「蘋果」?根據MSDN參考,我使用MultiSelectList(IEnum項目,IEnum選中)。它不應該工作嗎?

還是(IEnum選擇)仍有參考ID,所以我需要做ID替代字符串的IEnumerable的?

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

重命名ViewBag.ProductList,保存所選值的變量和提供值列表的變量應該不同 – Emil

+1

標記答案:-) – Emil

回答

1

我似乎無法註冊評論,但不能回答這個問題。

基本上,由周華健在評論解釋了我的錯誤是具有保存價值選擇和提供具有相同名稱列表中的一個,因爲帽不要在此情況下,重要的變量。