Как управлять исключением ViewData в SelecList? - PullRequest
0 голосов
/ 26 мая 2020

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

public IActionResult SendReport()
    {
        List<SelectListItem> listAdmin = new List<SelectListItem>();

        listAdmin.Add(
        new SelectListItem
        {
            Text = "admin",
            Value = "0"
        });

        ViewBag.listAdmin = listAdmin;
        ViewData["listAdmin"] = listAdmin;

        return View();
    }`

Просмотр: @Html.DropDownList("listAdmin",ViewData["listAdmin"] as IEnumerable<SelectListItem> ,"Selecte")

, но исключение:« Нет элемента ViewData типа 'IEnumerable', имеющего ключ 'listAdmin' ». Где м ошибка?

1 Ответ

1 голос
/ 26 мая 2020

Во-первых, если я использую ваш код, я не смогу воспроизвести ошибку.

А затем, если данные в контроллере будут нулевыми, у меня будет такая же ошибка с вашей:

Сообщение об ошибке : Нет элемента ViewData типа IEnumerable с ключом listAdmin.

public IActionResult SendReport()
        {
            List<SelectListItem> listAdmin = new List<SelectListItem>();

            listAdmin.Add(
            new SelectListItem
            {
                Text = "admin",
                Value = "0"
            });
            ViewBag.listAdmin = null;
            return View();
        }

Затем, если я изменю представление таким образом, у меня будет такая же ошибка с вашим:

Сообщение об ошибке: Нет элемента ViewData типа 'IEnumerable' с ключом 'listAdmin111'.

<div>
    @Html.DropDownList("listAdmin111", ViewData["listAdmin"] as IEnumerable<SelectListItem>, "Selecte")

</div>

Итак, я думаю, вы можете убедиться, что ViewBag и ViewData имеют значение null или отладите код и щелкните правой кнопкой мыши «ViewBag» и выберите «QuickWatch», чтобы увидеть информацию ViewBage. Затем вы можете убедиться, что написание в View такое же в контроллере.

...