C# ASP.NET MVC过滤器(相同类型)是否按照代码中包含的顺序执行,这是否有保证?
当包含MVC过滤器时,我知道它们可以在以下位置注册C# ASP.NET MVC过滤器(相同类型)是否按照代码中包含的顺序执行,这是否有保证?,c#,asp.net,asp.net-mvc,action-filter,actionfilterattribute,C#,Asp.net,Asp.net Mvc,Action Filter,Actionfilterattribute,当包含MVC过滤器时,我知道它们可以在以下位置注册 全局(FilterConfig.cs) 控制器级 行动级别 我还知道有4种类型,它们按以下顺序执行: 授权过滤器 动作过滤器 响应滤波器 异常过滤器 然而,我对这里的优先级有点困惑: 位置是否按所示顺序执行 假设位置是按顺序执行的,哪个优先:类型还是位置 如果在同一位置声明了多个相同类型的筛选器,会发生什么情况?它们是否按照定义的顺序执行 例如,如果我有如下6个过滤器,它们将以什么顺序执行 // FilterConfig.cs filter
- 位置是否按所示顺序执行
- 假设位置是按顺序执行的,哪个优先:类型还是位置
- 如果在同一位置声明了多个相同类型的筛选器,会发生什么情况?它们是否按照定义的顺序执行
// FilterConfig.cs
filters.Add(new AuthorizationFilter());
filters.Add(new ActionFilter());
-
这回答了你的问题吗@HasanElsherbiny有一部分,但我仍然不清楚在RegisterGlobalFilters中添加的过滤器的顺序
// MyController.cs
[AuthorizationFilter2]
[ActionFilter2]
public class MyController
{
[AuthorizationFilter3]
[ActionFilter3]
public ActionResult MyAction()
{
return foo;
}
}