2017-03-05 9 views
3

すべてのユーザーを表示しようとしています。私はまた、ユーザーに属する役割をリストしたいと思う。しかし、私はちょうどユーザーのための役割のidを得ることができます。しかし私は役割IDではないすべての役割名をリストしたいと思います。どうやってやるの?ここで が私のコードです:あなたは、各ユーザーの役割を取得しないようにしていますしようとしている場合、私はAsp.netのアイデンティティリストのユーザーのロール名asp.net ID

+1

「私はいくつかの問題に直面しました」問題が何であるかを推測できないので、問題を説明してください。また、 'Model'の型を指定してください。 – spender

+0

@FatikhanGasimovあなたはentityframeworkを使用していますか? – tmg

+1

@tmgはい、私はefを使用しています –

答えて

0

を使用しています

public async Task<ActionResult> Index() 
{ 
    var user = await _context.Users.Include(x=> x.Roles).ToListAsync(); 
    ViewBag.Roles = await _context.Roles.ToListAsync(); 
    return View(user); 
} 

ビューで

@model List<Projectname.Web.Models.ApplicationUser> 

@foreach (var c in Model) 
{ 
    <tr> 
     <td>@c.UserName</td> 
     <td>@c.Email</td> 
     <td>@c.LockoutEnabled</td> 
     @foreach (var role in c.Roles) 
     { 
      <td>@role.RoleId</td> 
     } 
    </tr> 
} 

PS var userからアクセスするだけですか?言い換えれば、あなただけの、あなたはすでにユーザーという名前の変数の下でユーザーのリストをフェッチしているので...まあ最初のすべてのリスト、配列またはコレクションのどんなフォームを保存している場合user.Roles

を使用する必要があります変数に複数形を指定する必要があります。今すぐ戻ってメインのポイントに...今、あなたは役割のIncludeusersをフェッチしていることを、あなたはそれがあなたのModelがあると仮定して、次のようになり

var users = await _context.Users.Include(x=> x.Roles).ToListAsync(); 

:あなたのケースでは、それは次のようになります。ユーザーの収集

@foreach (var user in Model) 
{ 
    <tr> 
     <td>@user.UserName</td> 
     <td>@user.Email</td> 
     <td>@user.LockoutEnabled</td> 
     @foreach (var role in user.Roles) 
     { 
      <td>@role.Id</td> 
      <td>@role.Name</td> 
     } 
    </tr> 
} 
関連する問題