Выпадающий список asp.net mvc без элемента ViewData

начинаю изучать mvc, пытаюсь добавить выпадающий список, сделать построение

<%= Html.DropDownList("ddl") %>

но он показывает ошибку

Нет элемента ViewData типа IEnumerable с ключом ddl.

Зачем? Я использую простой код, передаю только параметр имени, так почему ошибка?


person kusanagi    schedule 22.02.2010    source источник


Ответы (3)


"There is no ViewData item of type 'IEnumerable'"

Это означает, что вспомогательный метод ожидает элемент типа 'IEnumerable', например, List<> с идентификатором 'ddl'

Если вы пытаетесь отобразить DropDownList, в котором есть элементы из некоторого статического источника, вот один из способов сделать это.

          // create new IEnummerable 
          List<string> ddl = 
          new List<string>(new [] {"item1","item2" };   

          // add Items        
          ddl.Add("Item1");
          ddl.Add("Item2");

          // return View which holds ddl now
          ViewData["ddl "] = ddl ;
          return View();

Для получения дополнительной информации взгляните на

person Asad    schedule 22.02.2010

Фактически Html.DropDownList - это помощник HTML, который создает элемент html select. Когда вы передаете ddl в качестве аргумента, он ожидает получить массив или список или что-то в этом роде (объект, реализующий интерфейс IEnumerable) для заполнения раскрывающегося списка. попробуйте это так:

В контроллере:

ViewData["ddl"]=new string[]{'Jan',  'Feb','Mar','Apr'.......'Dec'};

затем он создаст элемент выбора, содержащий заданные значения. Для получения дополнительной информации прочтите эту статью.

person TheVillageIdiot    schedule 22.02.2010

Вот пример добавления DropDownList в ASP.NET-MVC. Вам необходимо предоставить элемент типа IEnumerable с ключом dll в ViewData, как указано в ошибке.

person Yuriy Faktorovich    schedule 22.02.2010