2016-11-15 140 views
0

我有如下这种结构的菜单:基于角色的菜单

<div id="sidebar-menu"> 
      <ul> 
       <li class="active"> 
        <a href="index.html" class="design active"><i class="icon-employee"></i><span> Employees </span></a> 
       </li> 

       <li> 
        <a href="Holiday.html" class="design"><i class="icon-holiday"></i><span> Holidays <span class="badge">6</span></span></a> 
       </li> 

       <li class="has_sub"> 
        <a href="javascript:void(0);" class="design"><i class="icon-time"></i> <span> Time & Attendance </span> <span class="pull-right"><i class="mdi mdi-plus"></i></span></a> 
        <ul class="list-unstyled"> 
         <li><a href="incident.html">Incidents</a></li> 
         <li><a href="hour.html">Hours</a></li> 
         <li><a href="pass.html">Passes</a></li> 
         <li class"active"><a class"active" href="disability.html">Disabilities</a></li> 
        </ul> 
       </li> 
    </ul> 
    </div> 

有一个关于如何创建它,但它只是一个一级菜单的好文章,这里是一个二级菜单。 http://techbrij.com/role-based-menu-asp-net-mvc

我想根据用户角色或验证动态显示它。

任何线索或示例如何做到这一点?

回答

3

根据用户角色在任何视图中动态显示内容。你可以做这样的事情:

@if (User.IsInRole("roleName")) 
{ 
    //Here you can write anything you want to show. 
    <li><a href="incident.html">Incidents</a></li> 
    <li><a href="hour.html">Hours</a></li> 
    <li><a href="pass.html">Passes</a></li> 
} else { 
    <li><a href="signup.html">Sign Up</a></li> 
    <li><a href="login.html">Login</a></li> 
    <li><a href="aboutus.html">About Us</a></li> 
} 

如果你只是想检查,如果用户通过验证,你可以做这样的:

@if (@User.Identity.IsAuthenticated) 
{ 
    //Here you can write anything you want to show. 
    <li><a href="incident.html">Incidents</a></li> 
    <li><a href="hour.html">Hours</a></li> 
    <li><a href="pass.html">Passes</a></li> 
} else { 
    <li><a href="signup.html">Sign Up</a></li> 
    <li><a href="login.html">Login</a></li> 
    <li><a href="aboutus.html">About Us</a></li> 
} 

如果菜单是完全不同的,将是很好根据用户角色或用户是否通过身份验证,执行2个部分视图并从_Layout调用它们。这里是一个例子:

@if (User.IsInRole("roleName")) 
{ 
    //Here you can write anything you want to show. 
    @Html.Partial("_RoleXXMenu") 
} else { 
    @Html.Partial("_RoleYYMenu") 
} 
相关问题