1、在过滤器中,用ViewBag类似的东西,要((ViewResult)filterContext.Result).ViewBag。

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

3、权限验证及菜单读取

  我想在BaseController中,根据Session用户角色读取加载菜单,在权限过滤器中验证是否登录,在Action过滤器中验证每次请求是否合法。但这样是不行的,因为在BaseController中没法获取到Session,包括构造方法中,并且权限过滤器中也是在BaseController中构造方法之后运行的。各Controller中的只有Index页面,才进行菜单获取,其他Action是不进行菜单获取的。因此,菜单获取的方法不能放在BaseController中,只能放在Action过滤器中。验证登录和权限,是要求每个Action都要进行的操作,因此这个可以放在使用BaseController解决,这样只需要给BaseController加上权限过滤器就可以了,其他Controller只需要继承就行了。

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

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

5、动态加载添加编辑页面导致的jquery validate验证是问题

  https://stackoverflow.com/questions/18634629/jquery-validation-on-modal-popup

  只能在,点击保存的时候加上验证,其他地方都不行,并且还必须要加上 $('#myModal form').valid(),方法验证才会显示验证错误信息。返回true才执行下一步。

6、添加和修改要分开,因为要具体的权限管理,有的角色可能只要添加

7、在js中使用C# MVC代码,再穿插使用js代码

  使用<text></text>标签包裹js代码,这样就会使转换器返回到html模式。如:

 function btnFormatter(value, row, index) {
var btns = "";
@if (currentMenuModel.actionUrls.Exists(t => t.Equals("Edit", StringComparison.OrdinalIgnoreCase)))
{
<text>btns += '<button type="button" class="btn btn-info" onclick="edit(\'' + row.id + '\')">修改</button>&nbsp;'</text>
}
@if (currentMenuModel.actionUrls.Exists(t => t.Equals("Delete", StringComparison.OrdinalIgnoreCase)))
{
<text>btns += '<button type="button" class="btn btn-danger" onclick="del(\'' + row.id + '\')">删除</button>'</text>
}
return btns;
}

MVCAdmin项目知识点记录的更多相关文章

  1. C#知识点记录

    用于记录C#知识要点. 参考:CLR via C#.C#并发编程.MSDN.百度 记录方式:读每本书,先看一遍,然后第二遍的时候,写笔记. CLR:公共语言运行时(Common Language Ru ...

  2. spring mvc开发过程知识点记录

    给一个客户做的一个小项目,需求就是输入类似一个短网址http://dd.yy/xxxx然后跳转到另外一个域名下的图书文件.(实际很多短网址站都提供API供调用吧,不过客户需求是他自己建立一个短网址服务 ...

  3. 【千纸诗书】—— PHP/MySQL二手书网站后台开发之知识点记录

    前言:使用PHP和MySQL开发后台管理系统的过程中,发现有一些通用的[套路小Tip],这里集中记录一下.结合工作中ing的后台业务,我逐渐体会到:除了技术知识外.能使用户体验好的“使用流程设计”积累 ...

  4. javascript知识点记录(1)

    javascript一些知识点记录 1.substring,slice,substr的用法 substring 和slice 都有startIndex 和 endIndex(不包括endInex),区 ...

  5. JavaScript算法与数据结构知识点记录

    JavaScript算法与数据结构知识点记录 zhanweifu

  6. Ionic3项目实践记录

    Ionic3首次项目实践记录 标签(空格分隔): Angular Ionic Ionic3踩坑 1. 路由懒加载(lazy load) 如果设置了懒加载,就必须全部懒加载(包括TabsPage),否则 ...

  7. DB知识点记录

    DB知识点记录 分页 SqlServer:ROW_NUMBER () over (ORDER BY ID) AS RN, MySql:limit Oracle:ROWNUM AS RN 数据表的基本结 ...

  8. Anytime项目开发记录0

    Anytime,中文名:我很忙. 开发者:孤独的猫咪神. 这个项目会持续更新,直到我决定不再维护这个APP. 2014年3月10日:近日有事,暂时断更.希望可以会尽快完事. 2014年3月27日:很抱 ...

  9. Express+Mongoose(MongoDB)+Vue2全栈微信商城项目全记录(二)

    用mogoose搭建restful测试接口 接着上一篇(Express+Mongoose(MongoDB)+Vue2全栈微信商城项目全记录(一))记录,今天单独搭建一个restful测试接口,和项目前 ...

随机推荐

  1. 解密Cookie,这一篇就够了

    一.Cookie介绍 因为HTTP协议是无状态的,每次请求都是独立的,服务器端无法判断两次请求是否来自同一个用户,进而也就无法判断用户的登录状态,也不知道用户上一次做了什么.所以Cookie就是用来绕 ...

  2. cephonebox发布

    前言 现在已经是2016年收官的一个月了,之前一直想做一个calamari的集成版本,之所以有这个想法,是因为,即使在已经打好包的情况下,因为各种软件版本的原因,造成很多人无法配置成功,calamar ...

  3. Jmeter 处理接口乱码

    第一步:添加 BeanShell Listener 第二步: 设置值 : prev.setDataEncoding("UTF-8") 第三步: 重新跑脚本,看接口返回值

  4. centos 6 系统下同步本地时间

    1.date显示系统时间 [root@oldboy ~]# dateTue Mar 31 22:45:55 CST 2020   #CST是指是指某中标准时间 非东八区时间 更改时间的三种方法 1.c ...

  5. python自动化测试pytest框架

    pytest和unittest都是python中的测试框架,pytest相比unittest 更加的灵活,具体体现在 以下几点 1.写测试方法时不用继承类 2.前置后置放在一起 2.1如果是全局共享的 ...

  6. keras中seq2seq实现

    这里只是简单的一个例子 输入序列 目标序列 [13, 28, 18, 7, 9, 5] [18, 28, 13] [29, 44, 38, 15, 26, 22] [38, 44, 29] [27, ...

  7. Vue Springboot (包括后端解决跨域)实现登录验证码功能详细完整版

    利用Hutool 基于Vue.ElementUI.Springboot (跨域)实现登录验证码功能 前言 一.Hutool是什么? 二.下面开始步入正题:使用步骤 1.先引入Hutool依赖 2.控制 ...

  8. Robot Framework安装和入门

    1:安装 python 安装python并且配置好环境变量 2:安装 Robot Framework pip install robotframework 3:安装GUI界面 pip install ...

  9. 【初等数论】费马小定理&欧拉定理&扩展欧拉定理(暂不含证明)

    (不会证明--以后再说) 费马小定理 对于任意\(a,p \in N_+\),有 \(a^{p-1} \equiv 1\pmod {p}\) 推论: \(a^{-1} \equiv a^{p-2} \ ...

  10. Mybatis【1】-- 第一个Mybatis程序

    1.框架是什么 框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架.前者是从应用方面而后者是从目的方面 ...