前言

简单介绍一下过滤器。

正文

看下过滤器类型:

action: 在动作方法之前及之后执行

result: 在action结果被执行前或者之后执行,比如说返回一个视图,再执行视图前执行一个方法,再执行之后执行一个方法

authorizationfilter:首先运行,看的出来一般是用来执行权限的,如果权限不够,那么后面没有,类似看门狗。

exption:异常时候执行,一般处理错误跳转。

这是mvc的一套系统,即使你不去写任何相关的代码,他们也会按照这个流程,检测,所以不能说框架是性能好的东西,只能说是有利于开发的东西。

有一个默认执行的过滤器:

F12进入:

这个就是处理我们异常的信息的过滤器。

来看下action类型吧。

建立一个类,然后去继承ActionFilterAttribute,覆盖上面的这两个方法。

这两个方法的含义,字面理解为正要执行和执行后。

加了一些东西,用于输出他们调用时候的时间,必须精确到毫秒,应为代码数据一般都用ms计算。

看下结果:

这个时候加入result 过滤器:

然后再次看下结合:

清晰明了,视图过程和他们的执行顺序都反映出来了。

看下onAuthoriaztion:

这个是最先运行的,也称权限控制器,继承: AuthorizeAttribute.

因为用的比较多了,有些必须登陆才可以使用的,可以把他放在全局中,有些部分的就放在自己的一个BaseControl中吧,然后继承。

看下异常过滤器:

最后一个处理异常的,继承HandleErrorAttribute,然后复写这个方法。

拿到异常,然后自定义错误的跳转,当然自己可以根据不同的情况自己设定。

一般会放在全局过滤器中。

如果没有执行,加上这个配置吧。

意思是定制的错误,方法启动。

MVC过滤器简单刨析的更多相关文章

  1. ThreadLocal原理简单刨析

    ThreadLocal原理简单刨析 ThreadLocal实现了各个线程的数据隔离,要知道数据是如何隔离的,就要从源代码分析. ThreadLocal原理 需要提前说明的是:ThreadLocal只是 ...

  2. MVC过滤器简单理解

    之前对于MVC过滤器的理解一直处于很模糊的状态,就在网上找了一些很简单的案例做了一下学习,就找了一个比较容易理解的demo分享给大家. 新建一个MVC4项目,可以在global.asax文件中看到如下 ...

  3. Orchard 刨析:导航篇

    之前承诺过针对Orchard Framework写一个系列.本应该在昨天写下这篇导航篇,不过昨天比较累偷懒的去玩了两盘单机游戏哈哈.下面进入正题. 写在前面 面向读者 之前和本文一再以Orchard ...

  4. 深入刨析tomcat 之---第8篇 how tomcat works 第11章 11.9应用程序,自定义Filter,及注册

    writed by 张艳涛, 标签:全网独一份, 自定义一个Filter 起因:在学习深入刨析tomcat的学习中,第11章,说了调用过滤链的原理,但没有给出实例来,自己经过分析,给出来了一个Filt ...

  5. mvc过滤器学习(1)

    mvc 过滤器结构图 AuthorizeAttribute AuthorizeAttribute是IAuthorizationFilter的默认实现,添加了Authorize特性的Action将对用户 ...

  6. ASP.NET MVC 过滤器(五)

    ASP.NET MVC 过滤器(五) 前言 上篇对了行为过滤器的使用做了讲解,如果在控制器行为的执行中遇到了异常怎么办呢?没关系,还好框架给我们提供了异常过滤器,在本篇中将会对异常过滤器的使用做一个大 ...

  7. asp.net MVC 过滤器使用案例:统一处理异常顺道精简代码

    重构的乐趣在于精简代码,模块化设计,解耦功能……而对异常处理的重构则刚好满足上述三个方面,下面是我的一点小心得. 一.相关的学习 在文章<精简自己20%的代码>中,讨论了异常的统一处理,并 ...

  8. MVC过滤器详解

    MVC过滤器详解   APS.NET MVC中(以下简称"MVC")的每一个请求,都会分配给相应的控制器和对应的行为方法去处理,而在这些处理的前前后后如果想再加一些额外的逻辑处理. ...

  9. MVC过滤器使用案例:统一处理异常顺道精简代码

    重构的乐趣在于精简代码,模块化设计,解耦功能……而对异常处理的重构则刚好满足上述三个方面,下面是我的一点小心得. 一.相关的学习 在文章<精简自己20%的代码>中,讨论了异常的统一处理,并 ...

  10. Orchard 刨析:Logging

    最近事情比较多,有预研的,有目前正在研发的,都是很需要时间的工作,所以导致这周只写了两篇Orchard系列的文章,这边不能保证后期会很频繁的更新该系列,但我会写完这整个系列,包括后面会把正在研发的东西 ...

随机推荐

  1. 协议CAN&报文&仲裁

    简介 物理层 CAN 协议提供了 5 种帧格式来传输数据 数据链路层 中数据帧和遥控帧有标准格式和扩展格式两种,标准格式有 11 位标识符(ID),扩展格式有 29 个标识符(ID)  显性0,隐性1 ...

  2. [VueJsDev] 其他知识 - NestJS 学习内容

    [VueJsDev] 目录列表 https://www.cnblogs.com/pengchenggang/p/17037320.html NestJS 学习内容 NestJS 学习总结 Step. ...

  3. electron-vite 可用,本机软件开发环境搭建

    electron-vite 可用,本机软件开发环境搭建 https://electron-vite.github.io/

  4. 计算引擎-Flink

    参考:https://mp.weixin.qq.com/s/RUS9w-bGan6fDcF9CVqvFw checkpoint 1.Checkpoint Coordinator 向所有 source ...

  5. linux-debian-把用户加入root组

    使用vim进入 /etc/sudoers   打开这个文件(或者 vi)也行 修改数据: 敲击键盘上个的  i 就可以键入字符了, 在root = ALL(ALL:ALL) ALL  的下面敲击 用户 ...

  6. c语言中int和char之间的转换实例解析

    壹:     经常用到c,积累一些小函数,免得下次还要重新写,极大的提升工作效率啊. 贰:    代码很简单,直接上源码: #include <stdio.h> typedef unsig ...

  7. 教你一招,解决Github图片不显示问题(2021.1.20测试可用)

    本文提供的是windows系统解决方法,linux系统和mac系统可以参考原理,修改DNS的ip地址为阿里云或者是修改hosts文件 问题 可能有些朋友和我遇到同样的问题,逛Github的时候会发现, ...

  8. RunOnWeb - 创建新协议,支持html调用本地可执行文件,支持浏览器互相调用

    浏览器调用 exe ?    Yes!  谷歌 Chrome 启动微软 Edge ?     Yes! RunOnWeb 协议 创建新协议,支持html调用本地可执行文件,支持浏览器互相调用 [最新版 ...

  9. 关于Ubuntu的磁盘空间不足其中的一种问题

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文发布于 2014-07-06 01:12:48 ...

  10. Serverless学习笔记

    Serverless 闲言碎语 前段时间看了一些Serverless的文章,恰好最近又听了一门Serverless的应用实践课程,就把笔记拿出来和大家分享一下,如表述有误还请各位斧正 大家关心的问题 ...