通过viewBag传递列表引起的错误“未设置对象引用”

我试图在asp.net的“视图”部分中显示从控制器传递的项目列表,如下所示:

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,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");

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'类型的异常,但未在用户代码中处理

yingzi_06 回答:通过viewBag传递列表引起的错误“未设置对象引用”

您可以尝试以下方法:

  @Html.DropDownList("Roles",(<SelectList>)ViewBag["Roles"],"Name",new { @class = "form-control" })
本文链接:https://www.f2er.com/3140671.html

大家都在问