Существующие ответы до сих пор предназначены для ASP.NET Web API, а не для ASP.NET Core. Фактический способ сделать это в ASP.NET Core:
public class SampleActionFilter : IActionFilter
{
public void OnActionExecuting(ActionExecutingContext context)
{
// do something before the action executes
}
public void OnActionExecuted(ActionExecutedContext context)
{
// do something after the action executes
}
}
И вы можете зарегистрировать этот фильтр по всему миру в Startup.cs, так что это будет выполняться в каждом отдельном вызове, и вам не нужно повторять он в каждом Action / Controller:
options.Filters.Add(typeof(SampleActionFilter));
См. больше в официальной документации .