我想知道是否有执行ActionFilterAttribute属性的命令。我猜测本地的(在控制器的动作上定义的ActionFilterAttribute)正按照它们在Action上定义的顺序执行。
然而,无论是否在本地过滤器之前应用全局过滤器,反之亦然?此外,如果存在已定义的订单而不仅仅是仲裁,那么它在Mvc版本中是否一致?
提前致谢 汤姆
答案 0 :(得分:2)
有几个因素决定了docs
运行操作过滤器属性的顺序在每种过滤器类型中,Order值指定运行顺序。在每个过滤器类型和顺序中,Scope枚举值指定过滤器的顺序。此枚举定义以下过滤器范围值(按其运行顺序):
- 第一
- 全局
- 控制器
- 动作
- 最后
醇>
另外,你的假设
我猜测本地的(在控制器的Action上定义的ActionFilterAttribute)按照它们在Action上定义的顺序执行
不正确,没有定义订单/范围的过滤器的定义顺序
具有相同类型,顺序和范围的过滤器的执行顺序未定义。
如果您关心它们的执行顺序,那么您应该使用Order属性指定它。
答案 1 :(得分:1)
过滤器的顺序是这样的: