Reitityksen jälkeen ControllerFactory luo kontrollerin reittimäärityksestä saadun controller-parametrin perusteella. Kontrollerit ottavat vastaan käyttäjän käskyjä, hakevat tietoja sekä palauttavat tietojen näyttämiseen sopivia näkymiä. Kontrollerit ovat luokkia, jotka toteuttavat Liittymät IController ja joiden nimen loppu on Controller. Useimmissa tapauksissa kontrolleri kannattaa periyttää Controller (System.Web.Mvc.Controller) -luokasta, joka hoitaa useita toimenpiteitä (kuten oikean toiminnon valitsemisen) puolestasi.
Esimerkiksi kontrolleri nimeltä Home, jonka Visual Studio generoi automaattisesti uuteen ASP.NET MVC-projektiin.
using System.Web.Mvc;
namespace AspNetMvc.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
ViewModel.Message = "Welcome to ASP.NET MVC!";
return View();
}
public ActionResult About()
{
return View();
}
}
}
Vielä kontrolleriluokka, josta toiminnot on paikannettu ja toinen niistä "nimetty uudelleen".
using System.Web.Mvc;
namespace AspNetMvcOpas.Controllers
{
public class HomeController : Controller
{
// Index-niminen toiminto
public ActionResult Index()
{
ViewModel.Message = "Welcome to ASP.NET MVC!";
return View();
}
// About-niminen toiminto
[ActionName("About")]
public ActionResult JokuMuuNimi()
{
return View();
}
}
}
Toiminnot voivat palauttaa minkä tyyppisen objektin tahansa (tai olla palauttamatta), mutta yleensä ne palauttavat jonkin ActionResult-luokasta periytyvän objektin.