为除一个控制器外的所有控制器过滤.net核心

问题描述

我使用.NET Core 3.1,并且有一个要在除一个控制器之外的所有控制器中使用的过滤器。

我不想在所有控制器上使用[attribute]

我只需要说一种特定的控制器不使用过滤器的方式即可。

解决方法

您可以实现Filter全局设置,在FilterConfig上设置类似的内容。

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllersWithViews(options =>
    {
        options.Filters.Add(typeof(MySampleActionFilter));
    });
}

然后,您可以检查当前控制器是否是在CustomFilter上执行的控制器。

    public class CustomActionFilter : ActionFilterAttribute,IActionFilter
    {
         void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)
         {
              if(!filterContext.ActionDescriptor.ControllerDescriptor.ControllerName == "ExemptedController") {
                  OnActionExecuting(filterContext);
              }
         }
    }

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...