Значение раскрывающегося списка MVC не устанавливается - PullRequest
4 голосов
/ 05 мая 2009

Я уверен, что упускаю что-то очевидное, но это сводит меня с ума! Если я укажу опции html, значение моего выпадающего списка не будет установлено.

В моем контроллере я получаю параметры для моего выпадающего списка с помощью:

ViewData["Coordinator"] = new SelectList(userRepository.GetIdUserList(1), 
                          "ID",    "Signature",edCenter.Coordinator);

На мой взгляд, я заполняю раскрывающийся список:

Html.DropDownList("Coordinator",(IEnumerable) ViewData["Coordinator"],
                   new {style="width:175px"})

Выпадающие значения заполнены идеально, но значение списка не выбрано.

Однако, если я просто использую:

Html.DropDownList("Coordinator");

Все отлично работает.

Что не так ?? 1016 *

Ответы [ 2 ]

4 голосов
/ 05 мая 2009

Вчера я боролся с подобной проблемой, поэтому, если вы все еще получаете тот же результат, есть еще одна вещь, которую стоит рассмотреть. DropDownList иногда игнорирует выбранное значение вашего SelectList, это раздражает, но он пытается получить выбранное значение из ModelState, ViewData и Model, используя имя поля в качестве ключа. В вашем случае вы сохраняете список в ViewData ["Coordinator"], ключ имеет то же имя, что и DropDown. Попробуйте это:

ViewData["CoordinatorList"] = new SelectList(userRepository.GetIdUserList(1), 
                          "ID",    "Signature",edCenter.Coordinator);

ViewData["Coordinator"] = dCenter.Coordinator;

Тогда в поле зрения:

    <%=Html.DropDownList("Coordinator",((SelectList)ViewData["CoordinatorList"]).AsEnumerable(),
 new {style="width:175px"}) %>

Если вы хотите увидеть, что происходит за шторами, откройте отражатель (или получите источник MVC) и просмотрите этот метод: System.Web.Mvc.Html.SelectExtensions.SelectInternal ()

1 голос
/ 05 мая 2009

второй параметр DropDown Helper принимает объект типа IEnumerable (Of SelectListItem), но вы передали объект типа IEnumerable (Of SelectList) так вот как код должен быть написан:

     <%=Html.DropDownList("Coordinator",((SelectList)ViewData["Coordinator"]).AsEnumerable(),
 new {style="width:175px"}) %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...