我的 MVC 4 应用程序中有 2 个全局操作过滤器,我使用 RegisterGlobalFilters 在 Filter.config 文件中注册了它们。我需要它们以特定的顺序执行。
我知道如何为控制器特定的过滤器指定顺序,但是如何为我的全局过滤器指定顺序和范围?是按照他们注册的顺序吗?
我的 MVC 4 应用程序中有 2 个全局操作过滤器,我使用 RegisterGlobalFilters 在 Filter.config 文件中注册了它们。我需要它们以特定的顺序执行。
我知道如何为控制器特定的过滤器指定顺序,但是如何为我的全局过滤器指定顺序和范围?是按照他们注册的顺序吗?
由于到目前为止还没有给出关于如何在 RegisterGlobalFilters 中指定全局过滤器的顺序的答案,这是我的答案:
您可以通过传入第二个参数在 Add 方法中指定顺序:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute(), 1);
filters.Add(new LogFilter(), 2);
}
在这篇 MSDN 文章中,向下滚动到Filter Order部分。有Order
和Scope
属性允许您控制执行顺序。