I MVC er routing en proces med at kortlægge browseranmodningen til controllerhandlingen og returnere svar tilbage. Hver MVC-applikation har standard routing for standarden HomeController . Vi kan indstille brugerdefineret routing for nyoprettet controller.
Det RouteConfig.cs fil bruges til at indstille routing for applikationen. Til at begynde med indeholder 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 } ); } } }
Ifølge denne opsætningsfil vil Indekshandling af Home-controller blive behandlet som standard. Første gang, når applikationen kører, producerer den følgende output.
Hvis vi ser på adresselinjen, indeholder den kun lokal vært: 52174 . Der er ingen controller, og handling er angivet, fordi MVC-routeren kortlægger controlleren fra RouteConfig.cs.
Hvis vi udtrykkeligt indtaster controller- og handlingsnavne i adresselinjen, vil den omdirigere til den samme handling. Det localhost:52174/Home/Index vil producere det samme output til browseren.
Lad os nu oprette en ny controller og konfigurere den til rutefilen. Højreklik på Controller mappe og vælg tilføj og derefter controller. Det vil poppe et vindue op. vælg en tom controller, som vi gjorde i skærmbilledet.
Denne controller har noget kildekode, tilsidesæt 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 at konfigurere denne controller i rutefilen har vi lavet nogle ændringer i RouteConfig.cs fil. Koden er angivet 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 applikation producerer det samme output for lokal vært: 52174 og localhost:52174/Studenter/Index
Fordi rutemodulet i MVC-rammeværket kortlægger browser-URL'en til projektets RouteConfig-fil.
Produktion:
en række objekter java
Dette er det samme som ovenfor, selv om vi har indtastet controller- og handlingsnavne eksplicit.