【问题标题】:Hide and visible the div tags of Layout.cshtml on the basis of user role in Asp.net MVC4(Razor)在 Asp.net MVC4(Razor) 中根据用户角色隐藏和显示 Layout.cshtml 的 div 标签
【发布时间】:2013-03-25 07:08:20
【问题描述】:

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

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

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

我已经通过followin question但现在还没有回答

How to Show or hide controls based on roles - ASP.NET MVC 4 Razor

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

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 razor asp.net-mvc-4


    【解决方案1】:

    您可以使用User.IsInRole 方法:

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

    【讨论】:

    • 好的,让我试试,但我正在使用 SimpleMembership,所以它可以工作
    • 是的,它会起作用的。显然你需要配置一个角色提供者,因为成员提供者不处理角色。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2012-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-31
      • 2011-10-22
      • 2021-06-01
      • 1970-01-01
      相关资源
      最近更新 更多