Linq查询权限模块动态生成
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:MVC
作者:盘洪源
撰写时间:2019年7月27日星期六
项目的权限页面的里面的字段内容一般都是不是写死的,这个需要查询数据库表然后动态生成,还要进行一个数据的回填,所以这个页面的内容不要写死,效果图在后面,可以先看看。下面就是查询出模块和模块里面的操作的方法。
public ActionResult SelectModule()
{
int ModuleMount = (from tbModule in myModels.S_Module
select tbModule).Count();
List<Module> list = (from tbModule in myModels.S_Module
orderby tbModule.ModuleID descending
select new Module
{
ModuleID = tbModule.ModuleID,
Module = tbModule.Module,
rModuleDetail = (from tbModuleDetail in myModels.R_ModuleDetail
join tbHandle in myModels.S_Handle on tbModuleDetail.HandleID equals tbHandle.HandleID
where tbModuleDetail.ModuleID==tbModule.ModuleID
orderby tbModuleDetail.ModuleDetailID descending
select new ModuleDetail
{
ModuleDetailID = tbModuleDetail.ModuleDetailID,
HandleID = tbModuleDetail.HandleID,
Handle = tbHandle.Handle
}).ToList()
}).ToList();
return Json(list, JsonRequestBehavior.AllowGet);
}
这个将模块和操作查询出来后就返回视图就OK了剩下的就是页面的一个拼接问题,这个拼接也不难,主要是HTML会了这些拼接都是小问题。下面这些红色字体就是我这个项目的操作列,黑色字体的就是模块,然后就是一个回填复选框的问题,如果选中角色有这个页面或者操作的权限就要选中该复选框,这些就不一一解说了,然后看下效果图: