前言

简单介绍一下过滤器。

正文

看下过滤器类型:

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. setting.json 20210825 更新

    vue代码格式化思路 { "pasteImage.path": "${currentFileNameWithoutExt}_Images/", "up ...

  2. kubectl create 与 kubectl apply的区别

    kubectl apply和kubectl create都是Kubernetes(k8s)中用于创建或更新资源的命令,但它们在使用方式.功能和灵活性上存在一些区别. 声明式与命令式: kubectl ...

  3. 关于debian11无法安装星火商店的解决方法

    #!/bin/bash if [ "$(id -u)" != "0" ] then echo "请确保你使用root权限启动此脚本" exi ...

  4. MySQl出现ERROR 1045 (28000): Access denied for user 'root'@'localhost'解决方法

    描述 使用到是阿里云服务器,系统为cent Os,给某个账户授权之后,root的账户就登录不进去了,原本root账户设置好了远程连接的权限了,网上搜索了一大堆,终于自己摸索得到了几个方法 产生原因 r ...

  5. 高校刮起元宇宙风!3DCAT实时云渲染助力川轻化元校园建设

    元宇宙,是一个虚拟的网络世界,它与现实世界相互连接,为人们提供了一个身临其境的数字体验.元宇宙的概念并不新鲜,早在上个世纪就有科幻作家和电影导演对它进行了想象和创造.但是,随着科技的发展,特别是5G. ...

  6. uni组件传值注意

    目录介绍 01.组件传值遇到坑 02.父组件传值给子组件 03.子组件传值给父组件 01.组件传值遇到坑 子组件给父组件传值注意点 注意子组件触发事件定义的方法,首先在父组件中需要绑定子组件内部对应事 ...

  7. Adapter分组封装

    YCGroupAdapter 01.前沿说明 1.1 案例展示效果 1.2 该库功能和优势 1.3 相关类介绍说明 02.如何使用 2.1 如何引入 2.2 最简单使用 2.3 使用建议 03.常用a ...

  8. java 发送 http 请求练习两年半(HttpURLConnection)

    1.起一个 springboot 程序做 http 测试: @GetMapping("/http/get") public ResponseEntity<String> ...

  9. 深度解读UUID:结构、原理以及生成机制

    What 是 UUID UUID (Universally Unique IDentifier) 通用唯一识别码 ,也称为 GUID (Globally Unique IDentifier) 全球唯一 ...

  10. 新零售SaaS架构:线上商城系统架构设计

    零售商家为什么要建设线上商城? 传统的实体门店服务范围有限,只能吸引周边500米以内的消费者.因此,如何拓展服务范围,吸引更多的消费者到店,成为了店家迫切需要解决的问题. 缺乏忠实顾客,客户基础不稳, ...