Sobes.tech
Junior — Middle

Как допълнително да се разшири функционалността на контролера?

sobes.tech AI

Отговор от AI

В C# контролерите (например, в ASP.NET Core) могат да бъдат разширявани по няколко начина:

  • Наследяване: създайте клас, който наследява базов контролер и добавя или презаписва методи.
  • Филтри: използвайте атрибути на филтри (например, ActionFilter, AuthorizationFilter) за добавяне на логика преди или след изпълнението на действията на контролера.
  • Middleware: добавете междинен софтуер, който обработва заявките преди да достигнат до контролера.
  • Методи за разширение: добавете методи за разширение към контролера или неговия базов клас.
  • Внедряване на зависимости: свържете допълнителни услуги, които разширяват функционалността.

Пример за използване на филтър:

public class LogActionFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext context)
    {
        // Логика преди изпълнение на действието
        base.OnActionExecuting(context);
    }
}

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