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

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

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

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

Нет элемента ViewData типа 'IEnumerable', который имеет ключ 'ddl'

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

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();

Для большего понимания взгляните на

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

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

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

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

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

Другие вопросы по тегам