Junior — Middle
100
Можете объяснить принцип работы и назначение 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();
}