Ошибка вызвана передачей списка через viewBag "Ссылка на объект не установлена" - PullRequest
0 голосов
/ 08 ноября 2019

Я пытаюсь отобразить список элементов в разделе View в 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, "Name",new { @class = "form-control" })
    </div>
</div>

[Required]
[Display(Name = "Group")]
public string Roles { get; set; }

Однако я получил следующую ошибку:

Ссылка на объект не установлена ​​для экземпляра объекта.

Описание: во время выполнения текущего веб-запроса произошло необработанное исключение. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: 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);
    }
}

Дополнительноподробности об ошибке:

Исключение типа 'System.NullReferenceException' произошло в ASP.Identity.dll, но не было обработано в коде пользователя

1 Ответ

0 голосов
/ 08 ноября 2019

Вы можете попробовать это:

  @Html.DropDownList("Roles",(<SelectList>)ViewBag["Roles"], "Name",new { @class = "form-control" })
...