当前位置 : 主页 > 网络编程 > ASP >

ASP.NETMVC过滤器执行顺序介绍

来源:互联网 收集:自由互联 发布时间:2023-01-30
如果某个Action过滤器运用了多种过滤器,那么过滤器的执行顺序是如何呢? 规则一:不同类型的过滤器有一个先后顺序 即执行顺序是: 授权过滤器-动作过滤器-结果过滤器-异常过滤器

如果某个Action过滤器运用了多种过滤器,那么过滤器的执行顺序是如何呢?

规则一:不同类型的过滤器有一个先后顺序

即执行顺序是:授权过滤器->动作过滤器->结果过滤器->异常过滤器

注意:如果ActionFilter过滤器执行过程中发生了异常,那么会执行ExceptionFilter过滤器,不会执行ResultFilter过滤器。上图所示的是正常情况下的执行顺序。

规则二:控制器上面的过滤器优先于方法上面的过滤器

即控制器和方法上面都使用了相同的过滤器,那么先执行控制器上面的过滤器。如下图所示:

规则三、Order属性可以决定过滤器的先后顺序

默认order=-1,即会先执行没有设置order的过滤器。如下图所示:

规则四、如果过滤器的类型相同,相同order的过滤器不能确定谁先执行

如下图所示:

规则五、控制器实现的过滤器接口方法优先执行

上图中实现了ActionFilter过滤器的OnActionExecuting方法,所以先执行这个方法在执行ActionFilter1。如下图所示:

到此这篇关于ASP.NET MVC过滤器执行顺序的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持自由互联。

网友评论