Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 如何管理SelecList中ViewData的异常?_Asp.net Core_Drop Down Menu_Asp.net Core Mvc_Selectlistitem - Fatal编程技术网

Asp.net core 如何管理SelecList中ViewData的异常?

Asp.net core 如何管理SelecList中ViewData的异常?,asp.net-core,drop-down-menu,asp.net-core-mvc,selectlistitem,Asp.net Core,Drop Down Menu,Asp.net Core Mvc,Selectlistitem,控制器:` public IActionResult SendReport() { List<SelectListItem> listAdmin = new List<SelectListItem>(); listAdmin.Add( new SelectListItem { Text = "admin", Value = "0" })

控制器:`

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();
    }`
public IActionResult SendReport()
{
List listAdmin=new List();
listAdmin.Add(
新建SelectListItem
{
Text=“admin”,
Value=“0”
});
ViewBag.listAdmin=listAdmin;
ViewData[“listAdmin”]=listAdmin;
返回视图();
}`
查看:
@Html.DropDownList(“listAdmin”,ViewData[“listAdmin”]作为IEnumerable,“Selecte”)


但例外情况是“没有具有键“listAdmin”的“IEnumerable”类型的ViewData项。错误在哪里?

首先,如果我使用您的代码,我无法重现错误

然后,如果控制器中的数据为空,我将与您的错误相同:

错误消息: 没有键为“listAdmin”的“IEnumerable”类型的ViewData项

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

            listAdmin.Add(
            new SelectListItem
            {
                Text = "admin",
                Value = "0"
            });
            ViewBag.listAdmin = null;
            return View();
        }
public IActionResult SendReport()
{
List listAdmin=new List();
listAdmin.Add(
新建SelectListItem
{
Text=“admin”,
Value=“0”
});
ViewBag.listAdmin=null;
返回视图();
}
接下来,如果我像这样更改视图,我也会与您的视图有相同的错误:

错误消息: 没有键为“listAdmin111”的“IEnumerable”类型的ViewData项

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

</div>

@Html.DropDownList(“listAdmin111”,ViewData[“listAdmin”]作为IEnumerable,“Selecte”)

因此,我认为您可以通过调试代码并右键单击“ViewBag”并选择“QuickWatch”查看ViewBage信息来确保ViewBag和ViewData是否为空。然后您可以确保View中的拼写是否与Controller中的拼写相同。

正如您所说,我检查了拼写是否为真,ViewBag也不为空。但它显示为空例外..你还有别的想法吗?