在 ASP.NET Core MVC 中,如果想在 Razor 页面中使用 SelectList 提供下拉菜单的选项,必须先在控制器中将 SelectList 对象传递给 ViewData 或者 ViewBag。然而,在某些情况下,即使控制器正确地设置了 SelectList,它在 Razor 页面中仍然为 NULL。
解决该问题的方法是在控制器中显式地实例化 SelectList 对象,并将其传递给 ViewData 或者 ViewBag。
示例代码:
public IActionResult Index()
{
List items = new List
{
new SelectListItem { Text = "Option 1", Value = "1" },
new SelectListItem { Text = "Option 2", Value = "2" },
new SelectListItem { Text = "Option 3", Value = "3" }
};
ViewData["SelectListItems"] = new SelectList(items, "Value", "Text");
return View();
}
在 Razor 页面中,可以像下面这样使用 SelectList:
@{
var selectList = ViewData["SelectListItems"] as SelectList;
}