【问题标题】:Role Name in view not Matching the RoleID from the UserRole model and controller视图中的角色名称与 UserRole 模型和控制器中的 RoleID 不匹配
【发布时间】:2017-02-16 15:34:17
【问题描述】:

我正在使用 MVC 模板,并且有 User、Role 和 UserRole 模型和表。我可以毫无问题地添加和删除权限,但是当我在索引视图中列出当前 UserRoles 时,角色名称在列表中是连续的,而不是该用户的角色名称。

我的控制器非常简单

public ActionResult Index()
    {
        var userroles = db.UserRoles.Include(u => u.Users).Include(u => u.Roles).ToList();
        return View(userroles);
    }

这就是我的观点下降的地方

@foreach (var item in Model) {
<tr>
    <td>
        @Html.DisplayFor(modelItem => item.RoleId)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.Users.DisplayName)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.Roles.Name)
    </td>

对于显示的用户来说 RoleID 是正确的,但 item.Roles.Name 只是 Roles 表中按顺序排列的下一项。我在这里错过了什么?

如果这也有帮助,这里是 UserRole 模型:

public partial class UserRole
{
    [Key]
    [Column(Order = 0)]
    public int UserId { get; set; }

    [Key]
    [Column(Order = 1)]
    public int RoleId { get; set; }
    public string ApplicationName { get; set; }

    public virtual User Users { get; set; }
    public virtual Role Roles { get; set; }
}

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-4


    【解决方案1】:

    (代表 OP 发布).

    我发现问题存在于数据表中,其中 UserID 和 RoleId 没有关联回 User 和 Role 表。希望这可以帮助其他人避免我的错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-08
      • 2021-02-16
      • 2013-03-24
      • 1970-01-01
      • 1970-01-01
      • 2012-11-07
      • 2020-02-01
      • 1970-01-01
      相关资源
      最近更新 更多