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. centos7下做内存盘的方法

    在找这个资料的时候,基本没几个能用的或者过时了的,或者是换了概念,做的不是需要的那种盘,只有少数文章有提到关键部分应该怎么去操作,现在还是自己总结一下 内存盘tmpfs和ramdisk的区别 这个在网 ...

  2. Vue 组件化开发

    组件化开发 基本概念 在最开始的时候,已经大概的聊了聊Vue是单页面开发,用户总是在一个页面上进行操作,看到的不同内容也是由不同组件构成的. 通过用户的操作,Vue将会向用户展示某些组件,也会隐藏某些 ...

  3. Kubernetes K8S之Taints污点与Tolerations容忍详解

    Kubernetes K8S之Taints污点与Tolerations容忍详解与示例 主机配置规划 服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master C ...

  4. vue项目中echarts属性总结

    <div id="echarts" style="width: 600px;height: 400px;margin-top: 100px;margin-left: ...

  5. 思维导图iMindMap可以在哪些领域应用

    生活工作中你常常会遇到许多力所不能及的事情,感到无奈.茫然,这时候你急需一个帮手来帮你打破困境,思维导图就是这样的救世主,至于它有哪些力所能及的事情就是下面小编要跟你讲的. 你是否经常遇到过这样的情况 ...

  6. 怎样使MathType插入章节标记不显示

    作为专业的公式编辑器,MathType可以帮助大家在Word中插入数学公式,有的时候还需要插入章节标记,那么怎样使章节标记不显示呢?下面就教大家使MathType插入章节标记不显示的技巧. 实际问题如 ...

  7. Vegas教程:教你制作抖音热门人物穿越门窗特效

    抖音上经常会有很多特效视频,例如换妆.分镜.合拍.放大等,合适的特效总是会让视频更加出彩.这些特效,除了一部分是抖音自带以外,很多都是用的其他视频特效软件制作而成.这些视频编辑软件操作简单易上手,强大 ...

  8. 重新认识Lombok

    Lombok插件 简介 那么lombok到底是个什么呢,lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具,简单来说,比如我们新建了一个类,然后 ...

  9. MySQL开发篇(未完待续)

    一.索引 什么是索引? 索引是帮助Mysql提高获取数据的数据结构,换一句话讲就是"排好序的快速查找的数据结构". 1.索引的分类 MySQL主要的几种索引类型:1.普通索引.2. ...

  10. 牛客练习赛69 E 字串(哈希)

    题目链接 题目大意 给出一个长度为n排列p 规定一个区间 [l,r] (l<=r) 是 fair 的,当且仅当区间中最小值等于 l 并且最大值等于 r 求 fair 区间的个数 题目思路 我不会 ...