如何使用一次ActionFilter在所有控制器上执行
How to use ActionFilter once to perform on all controller
我有一种情况,我需要在每次 api 调用之前执行一个过滤器,但在 dot net 中,您必须在每个控制器上方编写该过滤器。
[ActionFilterName].
我写了很多控制器,在每个控制器上面写这个标签有点忙。
有什么方法可以在每次控制器执行之前调用此过滤器,而无需将其写在每个控制器上方。
就像我们进入 Java 的 Spring 引导一样,我们不需要在 API 调用之前执行的每个控制器上方写我们的过滤器注释。
我知道这个问题是否与已经问过的问题相似,如果是,请告诉我,我是新来的。
对于 asp.net 核心 2.x,试试这个:
services.AddMvc(options =>
{
options.Filters.Add(new CustomActionFilter());
//or
//options.Filters.Add(typeof(CustomActionFilter));
}).SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
参考:
对于 asp.net 核心 3.x,试试这个:
services.AddControllers(config =>
{
config.Filters.Add(new CustomActionFilter());
});
参考:
我有一种情况,我需要在每次 api 调用之前执行一个过滤器,但在 dot net 中,您必须在每个控制器上方编写该过滤器。 [ActionFilterName].
我写了很多控制器,在每个控制器上面写这个标签有点忙。 有什么方法可以在每次控制器执行之前调用此过滤器,而无需将其写在每个控制器上方。 就像我们进入 Java 的 Spring 引导一样,我们不需要在 API 调用之前执行的每个控制器上方写我们的过滤器注释。
我知道这个问题是否与已经问过的问题相似,如果是,请告诉我,我是新来的。
对于 asp.net 核心 2.x,试试这个:
services.AddMvc(options =>
{
options.Filters.Add(new CustomActionFilter());
//or
//options.Filters.Add(typeof(CustomActionFilter));
}).SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
参考:
对于 asp.net 核心 3.x,试试这个:
services.AddControllers(config =>
{
config.Filters.Add(new CustomActionFilter());
});
参考: