poniedziałek, 2 stycznia 2023

Różnica między ControllerBase i Controller (MVC vs API)

Tworząc aplikację MVC Core lub API Core możemy nasz Controller dziedziczyć z jednej z dwóch klas ControllerBase lub Controller

Ogólna zasada dziedziczenia jest następująca:

  • ControllerBase - klasa bazowa dla projektów API
  • Controller - klasa bazowa dla projektów MVC
Klasa Controller zawiera składowe specyficzne dla widoków MVC. Zdecydowanie w API nie będą one przydatne. Przykładowo udostępnia takie właściwości jak ViewBag, ViewData, TempData, itp.

Wyjątkiem jest sytuacja, kiedy zamierzamy wykorzystać te same Controllery w aplikacji MVC i API. Dziedziczenie po Controller jest wtedy uzasadnione.  

    public class ApiController : ControllerBase
    {

    }

    public class MvcController : Controller
    {

    }

Brak komentarzy:

Prześlij komentarz