Sobes.tech
Junior — Middle
99

Можете объяснить принцип работы и назначение Action Filter в контексте веб-разработки?

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

sobes.tech AI

Action Filter в веб-разработке на C# (например, в ASP.NET MVC) — это компонент, который позволяет выполнять дополнительную логику до или после выполнения действия контроллера (Action).

Назначение Action Filter:

  • Выполнение кода до вызова метода контроллера (например, проверка авторизации).
  • Выполнение кода после выполнения метода (например, логирование, изменение результата).
  • Повторное использование кода, который должен применяться к нескольким действиям.

Пример простого 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 {context.ActionDescriptor.DisplayName} выполнен за {elapsed} мс");
    }
}

// Использование:
[LogActionFilter]
public IActionResult Index()
{
    return View();
}