出现这个错误通常是因为在View中使用了SelectList而在Controller中没有传递正确的数据。这可以通过以下两种方法解决:
public ActionResult Index() { ViewBag.RolesList = new SelectList(db.Roles, "RoleId", "RoleName"); // 这里使用了ViewBag,也可以使用ViewData来传递数据 return View(); }
然后在你的View中使用这个SelectList,例如:
@Html.DropDownListFor(m => m.RoleId, (SelectList)ViewBag.RolesList, "Select a Role")
public class MyViewModel { public int RoleId { get; set; } public SelectList Roles { get; set; } }
然后在Controller中,你需要创建一个ViewModel实例并将数据填充到它的属性中,例如:
public ActionResult Index() { var model = new MyViewModel { Roles = new SelectList(db.Roles, "RoleId", "RoleName") }; return View(model); }
最后在你的View中使用ViewModel,例如:
@model MyViewModel
@Html.DropDownListFor(m => m.RoleId, Model.Roles, "Select a Role")