Sobes.tech
Назад к вопросам
Junior — Middle
61

Какие типы Action фильтров ты можешь назвать и как они используются?

Ответ от нейросети

sobes.tech AI

В ASP.NET MVC и ASP.NET Core существуют несколько типов Action фильтров, которые позволяют выполнять код до и после выполнения действия контроллера:

  • Authorization Filters — проверяют права доступа пользователя перед выполнением действия.
  • Action Filters — выполняются до и после метода действия, позволяют изменить входные параметры или результат.
  • Result Filters — выполняются до и после формирования результата действия (например, перед рендерингом представления).
  • Exception Filters — обрабатывают исключения, возникшие в процессе выполнения действия.

Пример использования Action Filter для логирования времени выполнения действия:

public class LogActionFilter : ActionFilterAttribute
{
    private Stopwatch stopwatch;

    public override void OnActionExecuting(ActionExecutingContext context)
    {
        stopwatch = Stopwatch.StartNew();
    }

    public override void OnActionExecuted(ActionExecutedContext context)
    {
        stopwatch.Stop();
        var elapsed = stopwatch.ElapsedMilliseconds;
        // Логируем время выполнения
        Console.WriteLine($"Action executed in {elapsed} ms");
    }
}

// Применение фильтра к методу контроллера
[LogActionFilter]
public IActionResult Index()
{
    // ...
}