2013-06-24 75 views
1

我正在使用asp.net mvc。在我看來,我有一個列表框。此列表框中的選項始終在頁面加載時選中。我沒有爲這個列表框定義任何選定的值。誰能告訴我爲什麼會發生這種情況?asp.net mvc listbox選項雖然沒有定義選定的值,但選擇了

下面是代碼

  @{ 
       Dictionary<string, string> Options = new Dictionary<string, string>(); 
       ddlOptions.Add("1", "1"); 
       ddlOptions.Add("2", "2"); 
       ddlOptions.Add("3", "3n"); 
       ddlOptions.Add("4", "4"); 
      } 
      <td>@Html.ListBoxFor(model => model.AvailableProducts, 
      new MultiSelectList(Options , "Key", "Value"), 
      new { size = "6" }) 

model.AvailableProducts是一個字符串列表:

 List<string> product = new List<string>(); 
     product.Add("1"); 
     product.Add("2"); 
     product.Add("3"); 
     product.Add("4"); 
+1

是什麼'model.AvailableProducts'包含哪些內容?這是一個空的列表,還是一些數據可能已經在那裏? – Andrei

+0

@Andrei我更新了代碼爲 – Aditi

回答

1

選項已經被選中,因爲它們反映了模型的狀態。此行

@Html.ListBoxFor(model => model.AvailableProducts 

告訴ASP.NET MVC將屬性model.AvailableProducts綁定到列表框。由於此屬性包含列表中顯示的所有四個選項,所有這些選項都默認選中。您可以註釋掉填充此列表的代碼並確認沒有選擇任何選項。

如果你真的想只是選項的列表框中將與名稱AvailableProducts請求添加特定的參數,你可以使用Html.ListBox

@Html.ListBox("AvailableProducts", 
     new MultiSelectList(Options , "Key", "Value"), 
     new { size = "6" }) 
+0

的代碼註釋掉了代碼!謝謝! – Aditi

相關問題