ASP.NET MVC中过滤器执行顺序是怎样的,能否详细解释一下?
- 内容介绍
- 文章标签
- 相关推荐
本文共计420个文字,预计阅读时间需要2分钟。
如果某个Action过滤器使用了多种过滤器,那么这些过滤器的执行顺序如下:
规则一:不同类型的过滤器有一个先后顺序,即执行顺序是:+ 授权过滤器+ 操作过滤器+ 结果过滤器+ 异常过滤器
如果某个Action过滤器运用了多种过滤器,那么过滤器的执行顺序是如何呢?
规则一:不同类型的过滤器有一个先后顺序
即执行顺序是:授权过滤器->动作过滤器->结果过滤器->异常过滤器。
注意:如果ActionFilter过滤器执行过程中发生了异常,那么会执行ExceptionFilter过滤器,不会执行ResultFilter过滤器。上图所示的是正常情况下的执行顺序。
规则二:控制器上面的过滤器优先于方法上面的过滤器
即控制器和方法上面都使用了相同的过滤器,那么先执行控制器上面的过滤器。如下图所示:
规则三、Order属性可以决定过滤器的先后顺序
默认order=-1,即会先执行没有设置order的过滤器。
本文共计420个文字,预计阅读时间需要2分钟。
如果某个Action过滤器使用了多种过滤器,那么这些过滤器的执行顺序如下:
规则一:不同类型的过滤器有一个先后顺序,即执行顺序是:+ 授权过滤器+ 操作过滤器+ 结果过滤器+ 异常过滤器
如果某个Action过滤器运用了多种过滤器,那么过滤器的执行顺序是如何呢?
规则一:不同类型的过滤器有一个先后顺序
即执行顺序是:授权过滤器->动作过滤器->结果过滤器->异常过滤器。
注意:如果ActionFilter过滤器执行过程中发生了异常,那么会执行ExceptionFilter过滤器,不会执行ResultFilter过滤器。上图所示的是正常情况下的执行顺序。
规则二:控制器上面的过滤器优先于方法上面的过滤器
即控制器和方法上面都使用了相同的过滤器,那么先执行控制器上面的过滤器。如下图所示:
规则三、Order属性可以决定过滤器的先后顺序
默认order=-1,即会先执行没有设置order的过滤器。

