我正试图在asp.net的View部分显示从控制器传递的项目列表,如下所示:
public ActionResult Register()
{
ViewBag.Roles = new SelectList(db.Roles.ToList(),"Name","Name");
return View();
}
<div class="form-group">
@Html.LabelFor(m => m.Roles, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.DropDownList("Roles",null, "Name",new { @class = "form-control" })
</div>
</div>
[Required]
[Display(Name = "Group")]
public string Roles { get; set; }
然而,我得到了以下错误:
对象引用未设置为对象的实例。
描述:在执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误以及错误在代码中的来源的更多信息。
异常详细信息:System.NullReferenceException:对象引用未设置为对象的实例。
显示这行代码时出错:
Line 143: ViewBag.Roles = new SelectList(db.Roles.ToList(),"Name","Name");
public void CreateRoles()
{
var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(db));
IdentityRole role;
if(!roleManager.RoleExists("Admins"))
{
role = new IdentityRole();
role.Name = "Admins";
roleManager.Create(role);
}
}
错误的其他详细信息:
ASP.Identity.dll中发生类型为"System.NullReferenceException"的异常,但未在用户代码中处理
你可以试试这个:
@Html.DropDownList("Roles",(<SelectList>)ViewBag["Roles"], "Name",new { @class = "form-control" })