2013-06-26 82 views
0

我試圖僅在RegularUser角色中顯示用戶的配置文件。無論角色如何,只有管理員才能看到所有配置文件。以特定角色顯示用戶配置文件

這是我迄今爲止在視圖中的,但它似乎並沒有工作。有些事情只是看起來不對:

@string[] usersInRole = Roles.GetUsersInRole("RegularUser"); 
@foreach (var item in Model) 
{ 
    <ul> 
    @foreach (string FirstName in usersInRole) 
    { 
     <li> 
      <h3>@Html.DisplayFor(model => item.FullName)</h3> 
      @if (item.Image != null) 
      { 
       <img src="@Url.Content(item.Image)" alt="" /> 
      } 
      else 
      { 
       <br /> 
      } 
     </li> 
    } 
    </ul> 
} 

有什麼想法?

+0

你在'模型'中有什麼? –

+0

哦,是的,Model包含UserProfile類的字段。它工作正常,並顯示配置文件,但我似乎無法通過角色篩選它們。 – nouptime

回答

0

我建議你檢查如果模型用戶在RegularUser角色:

@string[] usersInRole = Roles.GetUsersInRole("RegularUser"); 
<ul> 
@foreach (var item in Model) 
{ 
    if(usersInRole.Contains(item.Firstname)) 
    { 
     <li> 
      <h3>@Html.DisplayFor(model => item.FullName)</h3> 
      @if (item.Image != null) 
      { 
       <img src="@Url.Content(item.Image)" alt="" /> 
      } 
      else 
      { 
       <br /> 
      } 
     </li> 
    } 
} 
</ul> 

如果你想LIMITE該視圖管理員,您可以使用:

@if(User.IsInRole("Administrator")){} 

希望它的幫助

+0

最棒的! 'if(usersInRole.Contains(item.Firstname))'修復了它。我把它倒過來哈哈。太感謝了! – nouptime

+0

不客氣;) –

0

這不起作用,因爲您的每個循環正在枚舉該角色的​​正確用戶。但是你不在任何地方輸出他們的用戶名。如果你包含

@FirstName 

在裏面你會看到每個用戶。

+0

試過,但沒有奏效。感謝您的回覆。 – nouptime

0

如果您想顯示基於角色的內容。 試試這個

@if (Request.IsAuthenticated && HttpContext.Current.User.IsInRole("Admin")) 
    { 
     //show all profiles 
    } 
    else 
    { 
     //show only regular users 
    } 
+0

我已經添加了該功能,並且可以向管理員顯示不同的內容。謝謝。 – nouptime

相關問題