视图中的角色名称不匹配UserRole模型和控制器中的RoleID

时间:2017-02-16 15:34:18

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

我正在使用MVC模板,并拥有User,Role和UserRole模型和表。我可以毫无问题地添加和删除权限,但是当我在索引视图中列出当前的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>

这是我的观点落下的地方

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; }
}

对于显示的用户,RoleID是正确的,但item.Roles.Name只是按顺序在Roles表中的下一个项目。我在这里缺少什么?

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

net 4.6.1

1 个答案:

答案 0 :(得分:0)

(代表OP发布)

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

相关问题