簡體   English   中英

過濾器 .net 核心適用於除一個之外的所有 controller

[英]Filter .net core for all controller except one

我使用 .NET Core 3.1 並有一個過濾器,我想在除一個之外的所有 controller 中使用它。

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

我只需要一種方式來說明特定的 controller 不使用過濾器。

您可以在 FilterConfig 上實現過濾器全局設置。

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

然后您可以檢查當前的 controller 是否是在您的 CustomFilter 上執行的。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM