首页 > 代码库 > MVCAdmin项目知识点记录

MVCAdmin项目知识点记录

1、在过滤器中,不能使用ViewBag类似的东西,这些是Controller中的。

2、Controller中自己定义的非Action方法中(包括构造方法),使用不了Session,这时获取不到Session。可以使用ViewData、ViewBag存数据。

3、权限验证及菜单读取

  我想在BaseController中,根据Session用户角色读取加载菜单,在权限过滤器中验证是否登录,在Action过滤器中验证每次请求是否合法。但这样是不行的,因为在BaseController中没法获取到Session,包括构造方法中,并且权限过滤器中也是在BaseController中构造方法之后运行的。

  解决办法:在BaseController中进行权限验证,因为在Controller中都可以重写OnAuthorization方法,这样就可以使用Session获取登录用户信息,验证登陆完成,读取菜单,把菜单放在ViewBag中,在前端使用。

4、前端页面使用Shared页面,加载各个部分

  _ViewStart中,如果页面中不指定Layout = null;,页面都会先加载_ViewStart中定义的布局页。使用@Html.Partial加载,指定的其他布局页,比如菜单页、头部、底部等不变的分布页。使用@RenderBody(),加载各个View视图页。

MVCAdmin项目知识点记录