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, как говорится в ошибке.