У меня возникла проблема с отображением данных в выпадающем меню на нескольких страницах. Сценарий: у меня есть 5 страниц с одинаковым частичным видом на всех этих страницах. В этом частичном представлении есть два выпадающего списка. Теперь есть два контроллера, один из которых - Домашний контроллер, а другой - Post Controller. Индексный метод действия Главной диспетчерской является:как отправить элемент списка в раскрывающийся список в частичном представлении на нескольких страницах
public ActionResult Index()
{
List<City> allCity = new List<city>();
using (ApplicationDbContext dc = new ApplicationDbContext())
{
allCity = dc.Cities.OrderBy(a => a.CityName).ToList();
}
ViewBag.CityId = new SelectList(allCity, "Id", "CityName");
return View();
}
Теперь, в частичном, я отправки данных выпадающим как это:
@model App.Models.City
<div class="dropdown">
@Html.DropDownList("Id", ViewBag.CityId as SelectList, new { @class = "short_dropdown" })
и рендеринг этого частичного вида на все страницы, как это:
<section class="container">
@Html.Partial("_CommentBox")
Теперь, если я вижу страницу index.cshtml Home Controller, тогда значения в раскрывающемся списке правильно заполняются. Но, если я перейти на главную страницу Post контроллера, то ошибка: **
Там нет ViewData элемент типа «IEnumerable», который имеет ключ «Id». System.InvalidOperationException: Нет элемента ViewData типа «IEnumerable» с ключом «Id».
Как решить эту проблему. Должен ли я отправлять данные вместе с частичным представлением. Если да, то у меня есть два раскрывающихся списка в одном частичном представлении, а затем как отправить данные для этих двух выпадающих списков.
показать нам код Индекс контроллера метод –
сообщение означает, что значение '' ViewBag.CityId' является null' –