在上一个(一)中,说了权限管理的设置,但是不知道你发现没有,就是你设置好管理的权限,但是登陆后你的模块仍然是全部都显示,这个时候你需要一个动态的显示来进行登录。
具体步骤如下:
(1)在登录后的显示界面写下动态显示:
<div id="naMenu" class="easyui-accordion" data- options="fit:true">
@Html.Action("Menu")
</div>
(2)一级菜单
因为调用Menu动态,所以在Home的视图系下书写了一个类“Menu”,内容如下:
循环查询模块名称和标志,按照ID进行排序,下边是调用的后台代码:
public ActionResult GetChild(int pid)
{
var list = Bll.Search(x => x.M_ParentID == pid);//查询父类信息
return View(list);
}
(3)二级菜单
来查询父类菜单(一级菜单),这个时候显示出来还是会乱。然后有了下边的代码,循环显示二级菜单,新建了一个类:
他来查询判断一级菜单,显示出来二级菜单。
(4)在显示的Home控制器中,获取当前登录用户,并根据当前用户显示。
public ActionResult Menu()
{
IEnumerable<Module> moduleList = bll.GetMenu((int)this.CurrentUer.R_ID);//一个int型的判断,获取当前登录用户的身份
return View(moduleList);
}
而在他引用的BaseController中,有:
protected User CurrentUer
{
get { return Session["LoginUser"] == null ? null : (User)Session["LoginUser"]; }
}
来获取登录页面传递来的角色。
应该是可以了,是全部的代码,如果有什么问题欢迎留言,一会我看一下,如果可以,我会把代码放到我的资源中。代码有一些乱,整理一下就可以了。我的运行是没有问题的