I MVC er ruting en prosess for å kartlegge nettleserforespørselen til kontrollerhandlingen og returnere svar tilbake. Hver MVC-applikasjon har standardruting for standard HomeController . Vi kan angi tilpasset ruting for nyopprettet kontroller.
De RouteConfig.cs filen brukes til å angi ruting for applikasjonen. Til å begynne med inneholder den følgende kode.
// 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 } ); } } }
I henhold til denne oppsettsfilen vil indekshandlingen til hjemmekontrolleren bli behandlet som standard. Første gang, når applikasjonen kjører, produserer den følgende utgang.
Hvis vi ser på adresselinjen, inneholder den kun lokal vert: 52174 . Det er ingen kontroller og handling er spesifisert fordi MVC-ruteren kartlegger kontrolleren fra RouteConfig.cs.
Hvis vi eksplisitt skriver inn kontroller og handlingsnavn i adressefeltet, vil den omdirigere til samme handling. De localhost:52174/Home/Index vil produsere samme utdata til nettleseren.
La oss nå lage en ny kontroller og konfigurere den til rutefilen. Høyreklikk på Kontroller mappe og velg legg til og deretter kontroller. Det vil dukke opp et vindu. velg en tom kontroller som vi gjorde i skjermbildet.
Denne kontrolleren har noe kildekode, overstyr denne med følgende kode.
// StudentsController.cs
using System.Web.Mvc; namespace MvcApplicationDemo.Controllers { public class StudentsController : Controller { public ContentResult Index() { return Content('This is default student page'); } } }
For å konfigurere denne kontrolleren i rutefilen har vi gjort noen endringer i RouteConfig.cs fil. Koden er gitt nedenfor.
// 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 } ); } } }
Denne applikasjonen produserer samme utgang for lokal vert: 52174 og localhost:52174/Studenter/Index
Fordi rutemodulen til MVC-rammeverket tilordner nettleser-URLen til RouteConfig-filen til prosjektet.
Produksjon:
mysql oppdatering bli med
Dette er det samme som ovenfor, selv om vi har angitt kontroller og handlingsnavn eksplisitt.