Sobes.tech
Junior — Middle

Na koji način se može dodatno proširiti funkcionalnost kontrolera?

sobes.tech АИ

Одговор од АИ

U C#-u, kontroleri (na primer, u ASP.NET Core) mogu se proširiti na više načina:

  • Nasleđivanje: kreirajte klasu koja nasleđuje osnovni kontroler i dodaje ili prepisuje metode.
  • Filteri: koristite atributne filtere (npr. ActionFilter, AuthorizationFilter) za dodavanje logike pre ili posle izvršavanja akcija kontrolera.
  • Middleware: dodajte middleware koji obrađuje zahteve pre nego što stignu do kontrolera.
  • Metode proširenja: dodajte metode proširenja za kontroler ili njegovu osnovnu klasu.
  • Ubacivanje zavisnosti: povežite dodatne servise koji proširuju funkcionalnost.

Primer korišćenja filtera:

public class LogActionFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext context)
    {
        // Logika pre izvršavanja akcije
        base.OnActionExecuting(context);
    }
}

[LogActionFilter]
public class MyController : Controller
{
    public IActionResult Index()
    {
        return View();
    }
}