4

我有一个母版页,其中有一些菜单用于称为用户的角色,而其他菜单用于管理员角色,所以我愿意检查用户的角色并显示一些 div 标签并隐藏其他标签用户角色的基础。

因为,我们没有用于 layout.cshtml 的控制器,所以我如何为布局视图设置 viewModel 在其中我可以检查当前用户的角色

如何对 layout.cshtml 进行基于角色的检查。

我已经通过以下问题,但现在还没有回答

如何根据角色显示或隐藏控件 - ASP.NET MVC 4 Razor

所以,请告诉我可能的解决方案以及哪种方式最适合在 layout.cshtml 中应用基于角色的检查

4

2 回答 2

11

您可以使用以下User.IsInRole方法:

@if (User.IsInRole("admin"))
{
    <li>Only the admin can see this menu item</li>
}
于 2013-03-25T07:09:40.150 回答
3

您可以使用以下代码进行基于角色的检查

@if(Request.IsAuthenticated)

{
    if(User.IsInRole("Admin")
    {
     <Ul Class="SubMenuItem">

     <li> this menu item is for Admin role</li>
     </Ul>
    }
     if(User.IsInRole("User")
    {
     <Ul Class="SubMenuItem">

     <li> this menu item is for User role</li>
     </Ul>
    }
}

对于未知用户

else
{
 <Ul Class="SubMenuItem">

     <li> this menu item is for Unknown user</li>
     </Ul>
}
于 2013-03-25T07:43:27.027 回答