2017-02-16 2 views
0

私はMVCテンプレートを使用しており、User、Role、UserRoleのモデルとテーブルを持っています。権限を追加して問題なく削除できますが、現在のUserRolesをインデックスビューに表示すると、ロール名はそのユーザーのロールの名前ではなく、リスト内で順番になります。ビュー内のロール名UserRoleモデルとコントローラのRoleIDを一致させない

私のコントローラは

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テーブル内に順番に並んでいるかどうかを確認します。私はここで何が欠けていますか?

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

答えて

0

(OPに代わって投稿):それは、同様に役立ちます場合

は、ここでのUserRoleモデルです。

UserとRoleIdがUserテーブルとRoleテーブルに関連付けられていないデータテーブルに問題が存在することがわかりました。うまくいけば、これは他の人が私の間違いを避けるのに役立ちます

+1

編集ありがとうございました@halfer – vbnoob

関連する問題