Asp.net mvc ASP.Net MVC ActionFilterAttribute排序全局与本地

Asp.net mvc ASP.Net MVC ActionFilterAttribute排序全局与本地,asp.net-mvc,Asp.net Mvc,我想知道是否有执行ActionFilterAttribute属性的命令。我猜本地过滤器(在控制器的操作上定义的ActionFilterAttribute)是按照在操作上定义的顺序执行的 但是,是否有人不知道全局过滤器是在局部过滤器之前应用的,或者反之亦然?另外,若有一个定义的顺序,而不仅仅是任意的,那个么它在Mvc的各个版本中是否是一致的 提前谢谢 Tom过滤器的顺序如下: 全局操作执行 正在执行的本地控制器作用域筛选器 正在执行的本地操作作用域筛选器 动作调用 已执行本地操作范围筛选器OnAc

我想知道是否有执行ActionFilterAttribute属性的命令。我猜本地过滤器(在控制器的操作上定义的ActionFilterAttribute)是按照在操作上定义的顺序执行的

但是,是否有人不知道全局过滤器是在局部过滤器之前应用的,或者反之亦然?另外,若有一个定义的顺序,而不仅仅是任意的,那个么它在Mvc的各个版本中是否是一致的

提前谢谢
Tom

过滤器的顺序如下:

  • 全局操作执行
  • 正在执行的本地控制器作用域筛选器
  • 正在执行的本地操作作用域筛选器
  • 动作调用
  • 已执行本地操作范围筛选器OnActionExecuted
  • 已执行本地控制器作用域筛选器
  • 执行全局操作

  • 过滤器的顺序如下所示:

  • 全局操作执行
  • 正在执行的本地控制器作用域筛选器
  • 正在执行的本地操作作用域筛选器
  • 动作调用
  • 已执行本地操作范围筛选器OnActionExecuted
  • 已执行本地控制器作用域筛选器
  • 执行全局操作

  • 过滤器的顺序如下所示:

  • 全局操作执行
  • 正在执行的本地控制器作用域筛选器
  • 正在执行的本地操作作用域筛选器
  • 动作调用
  • 已执行本地操作范围筛选器OnActionExecuted
  • 已执行本地控制器作用域筛选器
  • 执行全局操作

  • 有几个因素决定了操作过滤器属性的运行顺序,从

    在每个过滤器类型中,Order值指定运行顺序。在每个过滤器类型和顺序中,作用域枚举值指定过滤器的顺序。此枚举定义以下筛选器作用域值(按其运行顺序):

  • 首先
  • 全球的
  • 控制器
  • 行动
  • 最后
  • 还有,你的假设

    我猜本地过滤器(在控制器的操作上定义的ActionFilterAttribute)是按照在操作上定义的顺序执行的

    不正确,没有为未定义顺序/范围的筛选器定义顺序

    具有相同类型、顺序和范围的筛选器的执行顺序未定义


    如果您关心操作过滤器属性的执行顺序,则应使用属性指定该顺序。

    有两个因素决定了操作过滤器属性的运行顺序,从

    在每个过滤器类型中,Order值指定运行顺序。在每个过滤器类型和顺序中,作用域枚举值指定过滤器的顺序。此枚举定义以下筛选器作用域值(按其运行顺序):

  • 首先
  • 全球的
  • 控制器
  • 行动
  • 最后
  • 还有,你的假设

    我猜本地过滤器(在控制器的操作上定义的ActionFilterAttribute)是按照在操作上定义的顺序执行的

    不正确,没有为未定义顺序/范围的筛选器定义顺序

    具有相同类型、顺序和范围的筛选器的执行顺序未定义


    如果您关心操作过滤器属性的执行顺序,则应使用属性指定该顺序。

    有两个因素决定了操作过滤器属性的运行顺序,从

    在每个过滤器类型中,Order值指定运行顺序。在每个过滤器类型和顺序中,作用域枚举值指定过滤器的顺序。此枚举定义以下筛选器作用域值(按其运行顺序):

  • 首先
  • 全球的
  • 控制器
  • 行动
  • 最后
  • 还有,你的假设

    我猜本地过滤器(在控制器的操作上定义的ActionFilterAttribute)是按照在操作上定义的顺序执行的

    不正确,没有为未定义顺序/范围的筛选器定义顺序

    具有相同类型、顺序和范围的筛选器的执行顺序未定义


    如果您关心它们的执行顺序,那么您应该使用属性指定它。

    感谢您的快速响应。很高兴知道这一点。我一直认为过滤器是按顺序执行的,它们是在FilterConfig.registerGlobalFilters中注册的。谢谢您的快速响应。很高兴知道这一点。我一直认为过滤器是按顺序执行的,它们是在FilterConfig.registerGlobalFilters中注册的。谢谢您的快速响应。很高兴知道这一点。我一直认为过滤器是按顺序执行的,它们在FilterConfig.registerGlobalFilters中注册。谢谢你的回答这是我想要的-但是Andrew的回答更完整,这就是为什么我将他的答案标记为所选答案的原因。只要重新阅读我的评论,就会意识到我说Andrew的答案是指James的“谢谢你”对于你的回答,这就是我想要的-然而安德鲁的回答更完整,这就是为什么我将他的回答标记为“选择答案”。重新阅读我的评论,意识到我说安德鲁的回答时,我的意思是詹姆斯“谢谢你的回答,这是我想要的-然而安德鲁的回答更完整,这就是为什么我将他的回答标记为“选择答案”选择答案。重读我的评论,意识到我说的是安德鲁的答案,而我指的是詹姆斯的答案