#c# #.net #asp.net-core #filter #attributes
#c# #.net #asp.net-core #Фильтр #атрибуты
Вопрос:
Я использую .NET Core 3.1 и иметь один фильтр, который я хочу использовать во всех контроллерах, кроме одного.
Я не хочу использовать [attribute]
на всех контроллерах.
Мне нужен просто способ сказать, что конкретный контроллер не использует фильтр.
Ответ №1:
Вы можете реализовать фильтр глобально, установив что-то вроде этого в вашем FilterConfig.
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews(options =>
{
options.Filters.Add(typeof(CustomActionFilter));
});
}
Затем вы можете проверить, является ли текущий контроллер тем, который выполняется в вашем CustomFilter.
public class CustomActionFilter : ActionFilterAttribute, IActionFilter
{
void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)
{
if(!filterContext.ActionDescriptor.ControllerDescriptor.ControllerName == "ExemptedController") {
OnActionExecuting(filterContext);
}
}
}
Комментарии:
1. @shayankamalzadeh не беспокойтесь. рад, что это помогло. приветствия!
2. что такое MySampleActionFilter?