Sobes.tech
Junior — Middle

Cum se poate extinde în mod suplimentar funcționalitatea controlerului?

sobes.tech AI

Răspuns de la AI

În C#, controlerele (de exemplu, în ASP.NET Core) pot fi extinse în mai multe moduri:

  • Moștenire: creați o clasă care moștenește de la controlerul de bază și adaugă sau suprascrie metode.
  • Filtre: utilizați atribute de filtre (de exemplu, ActionFilter, AuthorizationFilter) pentru a adăuga logică înainte sau după executarea acțiunilor controlerului.
  • Middleware: adăugați middleware care procesează cererile înainte de a ajunge la controler.
  • Metode de extensie: adăugați metode de extensie pentru controler sau pentru clasa sa de bază.
  • Injectarea dependențelor: conectați servicii suplimentare care extind funcționalitatea.

Exemplu de utilizare a unui filtru:

public class LogActionFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext context)
    {
        // Logica înainte de executarea acțiunii
        base.OnActionExecuting(context);
    }
}

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