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也不为空。但它显示为空例外..你还有别的想法吗?