При просмотре ролей пользователей вместо имени роли отображается идентификатор роли.

Я пытаюсь настроить авторизацию на основе ролей в ASP.NET Identity. Я хочу сделать так, чтобы пользователи-администраторы могли видеть список пользователей и их роли (на странице индекса) и изменять роли отдельных пользователей (на странице редактирования).

Вот мой контекст:

modelBuilder.Entity<IdentityUser>()
    .HasKey<string>(k => k.Id)
    .ToTable("Users");
modelBuilder.Entity<IdentityUserRole>()
    .HasKey(r => new { r.RoleId, r.UserId })
    .ToTable("UserRoles");
modelBuilder.Entity<IdentityUserLogin>()
    .HasKey<string>(f => f.UserId)
    .ToTable("UserLogins");
modelBuilder.Entity<IdentityRole>()
    .ToTable("Roles");

Мое действие по индексированию в UsersController.cs:

public ActionResult Index()
    {
        return View(db.Users.Include(i => i.Roles).ToList());
    }

Индекс просмотра:

@model List<Microsoft.AspNet.Identity.EntityFramework.IdentityUser>

//stuff

    @foreach (var item in Model)
    {
        <tr class="index-item" data-href="@Url.Action("Details", "Users", new { id=item.Id })">
            <td>
                @Html.DisplayFor(modelItem => item.Email)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Roles)">
            </td>
            <td class="index-links">
                //stuff
            </td>
        </tr>
    }
</table>

Таблица моих ролей:

Моя таблица UserRoles:

На основании этих таблиц пользователь имеет роль «Просмотрщик». Однако вместо отображения имени роли в представлении отображается идентификатор роли:

Как мне сделать так, чтобы вместо этого отображалось имя роли (в данном случае «Просмотрщик»)?

Ответы на вопрос(2)

Ваш ответ на вопрос