U MVC-u, usmjeravanje je proces preslikavanja zahtjeva preglednika u radnju kontrolera i povratnog odgovora. Svaka MVC aplikacija ima zadano usmjeravanje za zadano HomeController . Možemo postaviti prilagođeno rutiranje za novostvoreni kontroler.
The RouteConfig.cs datoteka se koristi za postavljanje usmjeravanja za aplikaciju. U početku sadrži sljedeći kod.
// RouteConfig.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Routing; namespace MvcApplicationDemo { public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute('{resource}.axd/{*pathInfo}'); routes.MapRoute( name: 'Default', url: '{controller}/{action}/{id}', defaults: new { controller = 'Home', action = 'Index', id = UrlParameter.Optional } ); } } }
Prema ovoj datoteci za postavljanje, radnja Index kućnog kontrolera smatrat će se zadanom. Prvi put, kada se aplikacija pokrene, proizvodi sljedeći izlaz.
Ako pogledamo adresnu traku, ona sadrži samo lokalni host: 52174 . Nema kontrolera i radnja je navedena jer MVC usmjerivač mapira kontroler iz RouteConfig.cs.
Ako izričito unesemo nazive kontrolera i radnji u adresnu traku, preusmjerit će se na istu radnju. The localhost:52174/Home/Index proizvest će isti izlaz pregledniku.
Kreirajmo sada novi kontroler i konfigurirajmo ga za datoteku rute. Desni klik na Kontrolor mapu i odaberite dodaj, a zatim upravljač. Otvorit će se prozor. odaberite prazan kontroler kao što smo učinili na snimci zaslona.
Ovaj kontroler ima izvorni kod, nadjačajte ga sljedećim kodom.
// StudentsController.cs
using System.Web.Mvc; namespace MvcApplicationDemo.Controllers { public class StudentsController : Controller { public ContentResult Index() { return Content('This is default student page'); } } }
Da bismo konfigurirali ovaj kontroler u datoteci rute, napravili smo neke promjene RouteConfig.cs datoteka. Kod je naveden u nastavku.
// RouteConfig.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Routing; namespace MvcApplicationDemo { public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute('{resource}.axd/{*pathInfo}'); routes.MapRoute( name: 'Students', url: '{controller}/{action}/{id}', defaults: new { controller = 'Students', action = 'Index', id = UrlParameter.Optional } ); } } }
Ova aplikacija proizvodi isti izlaz za lokalni host: 52174 i localhost:52174/Studenti/Index
Budući da modul rute okvira MVC preslikava URL preglednika u datoteku RouteConfig projekta.
Izlaz:
java indeks od
Ovo je isto kao i gore, iako smo eksplicitno unijeli nazive kontrolera i radnji.