2013-06-24 1 views
1

Я работаю с asp.net mvc. У меня есть список на мой взгляд. Параметры в этом списке всегда выбираются при загрузке страницы. Я не определил какое-либо выбранное значение для этого списка. Может ли кто-нибудь сказать мне, почему это происходит?Параметры списка asp.net mvc выбираются, хотя выбранное значение не определено

Вот код

  @{ 
       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 Я обновил anser с кодом – 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