Ошибка раскрывающегося списка ASP.NETCore 3.0 - InvalidOperationException: отсутствует элемент ViewData типа 'IEnumerable <SelectListItem>', имеющий ключ - PullRequest
0 голосов
/ 04 июля 2019

У меня есть этот код, который работает в моих предыдущих проектах asp.net core 2.0 и 2.2, это выпадающий список с автоматической обратной передачей

Однако при добавлении их в мой недавний проект 3.0 я получаю следующие ошибки ниже.Вот мой код и ошибки, пожалуйста, сообщите

спасибо

Ehi

Сообщение об ошибке

InvalidOperationException: There is no ViewData item of type 'IEnumerable<SelectListItem>' that has the key "Cat"

Отображение всех категорий @ Html.DropDownList ("Cat ", ViewBag.DepartmentID как IEnumerable," Показать все отделы ", new {onchange =" form.submit (); ", @class =" form-control-textbox-dropdownlist "})

моя бритвапросмотр страницы

@Html.DropDownList("Cat", ViewBag.DepartmentID as IEnumerable<SelectListItem>, "Show all Departments", new { onchange = "form.submit();", @class = "form-control-textbox-dropdownlist" })

и контроллера

   ViewData["DepartmentID"] = new SelectList(_context.Set<Models.Department.Departments> (), "SubCategory_Name", "SubCategory_Name");

Ответы [ 2 ]

0 голосов
/ 05 июля 2019

Попробуйте внести следующие изменения:

@Html.DropDownList("DepartmentID", ViewBag.DepartmentID as IEnumerable<SelectListItem>, "Show all Departments", new { onchange = "form.submit();", @class = "form-control-textbox-dropdownlist" })

Имя раскрывающегося списка («DepartmentID») будет использоваться при отправке ваших данных на сервер. Но лучше сделать так, чтобы имя раскрывающегося списка соответствовало ViewData и ViewBag.

0 голосов
/ 05 июля 2019

Это может показаться немного странным, но помощники по HTML должны быть заменены помощниками по тегам, и более того, документы ASP.NET Core 3.0 Preview не включают в себя документы интерфейса Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper. Однако было бы проще использовать помощник по тегам. Вы можете заменить код @Html следующим, и он должен работать.

<select asp-for="Cat" asp-items="ViewBag.DepartmentID"></select>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...