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

Toiminnot

Toiminnot ovat kontrollerin julkisia metodeita. Tai oikeastaan toisinpäin; kaikki kontrollerin julkiset metodit ovat toimintoja. Älä siis jätä julkisiksi sellaisia metodeita, joihin ei ole tarkoitus päästä käsiksi suoraan kirjoittamalla osoite tyyliin kayttajat/salainenjuttu/123. Toimintojen nimi on oletuksena sama kuin metodin nimi, mutta on mahdollista asettaa se joksikin muuksi attribuutilla ActionName

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.