tutorial 在Asp.net MVC4(Razor)中基于用户角色隐藏和显示Layout.cshtml的div标签




razor mvc (2)

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

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

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

我已经经历了下面的问题,但现在还没有得到答复

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

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


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

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

你可以使用User.IsInRole方法:

@if (User.IsInRole("admin"))
{
    <li>Only the admin can see this menu item</li>
}




asp.net-mvc-4