2013-03-29 4 views
0

я сильно типизированнойДобавить коллекцию сущностей с другими параметрами маршрута

@model IEnumerable<MagazineIndex> 

, который представляет входной массив пользователя из objects.Also У меня есть выпадающий список:

@Html.DropDownList("DropDownName", 
        (List<SelectListItem>)ViewData["magazines"], 
        new { id = "DropDownName" }) 

Когда я отправить форму, я получаю эта ошибка:

There is no ViewData item of type 'IEnumerable' that has the key 'DropDownName'.

Мой контроллер выглядит так:

public ActionResult CreateContent(IList<MagazineIndex> indexes, 
            string DropDownName) 

Как исправить значения привязки?

+0

Не могли бы вы показать строку, в которой происходит исключение? –

+0

Вы хотите получить ВСЕ предметы из своего раскрывающегося списка или только выбранные? –

+0

@Linus Caldwell Это происходит, когда я нажимаю кнопку отправки – NET

ответ

1

Убедитесь, что в вашем действии HttpPost вы наполнении ViewData["magazines"] так же, как вы делали в вашем Получить действия:

[HttpPost] 
public ActionResult CreateContent(IList<MagazineIndex> indexes, string DropDownName) 
{ 
    ... 
    ViewData["magazines"] = ... same stuff as in your GET action 
    return View(indexes); 
} 

Это необходимо только быть сделано, если вы намерены повторно отобразить ту же точку зрения в вашем POST-действие. Если вы перенаправляете, вам это не нужно. Причина, в которой вы нуждаетесь, более чем очевидна. Ваше представление должно отображать элемент управления DropDown, который зависит от его значения.

Смежные вопросы