Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用ActionFilter一次在所有控制器上执行_C#_Asp.net_.net_Asp.net Core_Action Filter - Fatal编程技术网

C# 如何使用ActionFilter一次在所有控制器上执行

C# 如何使用ActionFilter一次在所有控制器上执行,c#,asp.net,.net,asp.net-core,action-filter,C#,Asp.net,.net,Asp.net Core,Action Filter,我有一种情况,我需要在每次api调用之前执行一个过滤器,但在dot net中,您必须在每个控制器之上编写该过滤器。 [ActionFilterName] 我写了这么多控制器,在每个控制器上面写这个标签有点忙。 是否有任何方法可以在每次控制器执行之前调用此筛选器,而不将其写入每个控制器之上。 就像在Java的Spring boot中一样,我们不需要在API调用之前执行的每个控制器上编写过滤器注释 我知道这个问题是否类似于已经问过的问题。如果是,请告诉我我是新来的。对于asp.net core 2.

我有一种情况,我需要在每次api调用之前执行一个过滤器,但在dot net中,您必须在每个控制器之上编写该过滤器。 [ActionFilterName]

我写了这么多控制器,在每个控制器上面写这个标签有点忙。 是否有任何方法可以在每次控制器执行之前调用此筛选器,而不将其写入每个控制器之上。 就像在Java的Spring boot中一样,我们不需要在API调用之前执行的每个控制器上编写过滤器注释


我知道这个问题是否类似于已经问过的问题。如果是,请告诉我我是新来的。

对于asp.net core 2.x,请尝试以下方法:

services.AddMvc(options =>
{
    options.Filters.Add(new CustomActionFilter());  
    //or 
    //options.Filters.Add(typeof(CustomActionFilter));      
}).SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
services.AddControllers(config =>
{
    config.Filters.Add(new CustomActionFilter());
});
参考:

对于asp.net core 3.x,请尝试以下操作:

services.AddMvc(options =>
{
    options.Filters.Add(new CustomActionFilter());  
    //or 
    //options.Filters.Add(typeof(CustomActionFilter));      
}).SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
services.AddControllers(config =>
{
    config.Filters.Add(new CustomActionFilter());
});
参考:


对于asp.net core 2.x,请尝试以下操作:

services.AddMvc(options =>
{
    options.Filters.Add(new CustomActionFilter());  
    //or 
    //options.Filters.Add(typeof(CustomActionFilter));      
}).SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
services.AddControllers(config =>
{
    config.Filters.Add(new CustomActionFilter());
});
参考:

对于asp.net core 3.x,请尝试以下操作:

services.AddMvc(options =>
{
    options.Filters.Add(new CustomActionFilter());  
    //or 
    //options.Filters.Add(typeof(CustomActionFilter));      
}).SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
services.AddControllers(config =>
{
    config.Filters.Add(new CustomActionFilter());
});
参考:


您需要的是所谓的全局过滤器(在下面的第一个答案中甚至没有提到)。那太可怕了。我们不仅仅需要这些东西,我们还需要它的(技术)名称,以便我们可以谈论或讨论它,找到更多关于它的信息。。。实际上,当您了解asp.NETCore中的过滤器时,您应该知道这个术语。始终尝试先阅读文档(我知道这很长很耗时,但值得一读)在使用它之前。我明白你的意思,但问题是我是Java开发人员,我被告知只做一天,所以我收集了这么多信息,并设法提出了一个几乎可以理解的问题,你想要的是所谓的全局过滤器(在下面的第一个答案中甚至没有提到)。那太可怕了。我们不仅仅需要这些东西,我们还需要它的(技术)名称,以便我们可以谈论或讨论它,找到更多关于它的信息。。。实际上,当您了解asp.NETCore中的过滤器时,您应该知道这个术语。在使用之前,一定要先阅读文档(我知道这很长很耗时,但很值得)。我明白你的意思,但问题是我是Java开发人员,我被告知只需一天就可以这样做,所以我收集了这么多信息,不知怎的问出了一个几乎可以理解的问题:“绝望”