V MVC je usmerjanje postopek preslikave zahteve brskalnika v dejanje krmilnika in vrnitve odgovora nazaj. Vsaka aplikacija MVC ima privzeto usmerjanje za privzeto HomeController . Za novo ustvarjen krmilnik lahko nastavimo usmerjanje po meri.
The RouteConfig.cs se uporablja za nastavitev usmerjanja za aplikacijo. Na začetku vsebuje naslednjo kodo.
// 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 } ); } } }
V skladu s to namestitveno datoteko bo dejanje indeksa domačega krmilnika obravnavano kot privzeto. Ko se aplikacija prvič zažene, ustvari naslednji rezultat.
Če pogledamo naslovno vrstico, vsebuje le lokalni gostitelj: 52174 . Krmilnika ni in dejanje je navedeno, ker usmerjevalnik MVC preslika krmilnik iz RouteConfig.cs.
Če v naslovno vrstico izrecno vnesemo imena krmilnikov in dejanj, bo preusmerjen na isto dejanje. The localhost:52174/Domača stran/Kazalo bo brskalniku ustvaril enak rezultat.
Zdaj pa ustvarimo nov krmilnik in ga konfigurirajmo v datoteko poti. Desni klik na Krmilnik mapo in izberite dodaj in nato krmilnik. Odprlo se bo okno. izberite prazen krmilnik, kot smo naredili na posnetku zaslona.
Ta krmilnik ima nekaj izvorne kode, preglasite to z naslednjo kodo.
// StudentsController.cs
using System.Web.Mvc; namespace MvcApplicationDemo.Controllers { public class StudentsController : Controller { public ContentResult Index() { return Content('This is default student page'); } } }
Za konfiguracijo tega krmilnika v datoteki poti smo naredili nekaj sprememb RouteConfig.cs mapa. Koda je navedena spodaj.
// 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 } ); } } }
Ta aplikacija ustvari enak rezultat za lokalni gostitelj: 52174 in localhost:52174/Students/Index
Ker modul poti ogrodja MVC preslika URL brskalnika v datoteko RouteConfig projekta.
Izhod:
c kodno polje nizov
To je enako kot zgoraj, čeprav smo izrecno vnesli imena krmilnikov in dejanj.