Kontroler (ang. controller)
Kontrolery to nic innego jak klasy C# których zadaniem jest obsługa żądań użytkowników (zwykle dziedziczy po klasie System.Web.Mvc.Controller). Kontroler w pierwszej kolejności odbiera dane wejściowe od użytkownika następnie je przetwarza i analizuje.
Skoro kontroler to klasa, to w „środku” musi mieć jakieś metody. Wewnątrz kontrolera wszystkie metody publiczne nazywamy metodami akcji i to za ich pomoc możemy „sterować” aplikacją. Zgodnie z konwencją MVC, aby ułatwiać sobie życie, wszystkie kontrolery należy umieszczać w katalogu Controllers w naszym projekcie (w oknie Solution Explorer), który jest automatycznie tworzony wraz z naszym nowym projektem. Tak jak w życiu jeśli masz wypracowaną jakąś własną konwencję to możesz ją stosować ale zaleca się stosowanie tej ogólnie przyjętej. Jeśli chodzi o nazywanie kontrolerów to przyjęło się że do nazwy kontrolera dodajemy słówko Controller np. HomeController. Z resztą Visual Studio sam proponuje nam przy tworzeniu kontrolerów używanie właściwej konwencji, co obrazuje poniższy zrzut.

Na co wpływa kontroler?
Kontroler wpływa zarówno na model i widok. Po analizie danych wejściowych może on np. zaktualizować model oraz odświeżyć widok. Można powiedzieć, że za pomocą kontrolera możemy kontrolować co się w aplikacji dzieje (za pomocą metod akcji które zawiera kontroler).
Jak tworzymy/dodajemy kontrolery do projektu?
W oknie Solution Explorer klikamy na folderze Controllers prawym przyciskiem myszy (zwanym dalej PPM) i z menu kontekstowego wybieramy opcję Add a następnie z kolejnego menu Controller.
Poniżej przykład kontrolera o nazwie HomeController, który zwraca widok metody Index
public class HomeController : Controller { public ViewResult Index() { return View(); // zwraca widok dla metody Index } }