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();
}
}