In MVC is routering een proces waarbij het browserverzoek wordt toegewezen aan de controlleractie en het antwoord terugkomt. Elke MVC-toepassing heeft standaardrouting voor de standaard HomeController . We kunnen aangepaste routing instellen voor een nieuw gemaakte controller.
De RouteConfig.cs bestand wordt gebruikt om de routering voor de toepassing in te stellen. In eerste instantie bevat het de volgende code.
// 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 } ); } } }
Volgens dit installatiebestand wordt de indexactie van de Home-controller als standaard behandeld. De eerste keer dat de toepassing wordt uitgevoerd, wordt de volgende uitvoer geproduceerd.
Als we naar de adresbalk kijken, bevat deze alleen lokalehost:52174 . Er is geen controller en er is actie gespecificeerd omdat de MVC-router de controller toewijst vanaf de RouteConfig.cs.
Als we expliciet controller- en actienamen in de adresbalk invoeren, wordt deze omgeleid naar dezelfde actie. De localhost:52174/Home/Index zal dezelfde uitvoer naar de browser produceren.
Laten we nu een nieuwe controller maken en deze configureren voor het routebestand. Klik met de rechtermuisknop op de Controleur map en selecteer toevoegen en vervolgens controller. Er verschijnt een venster. selecteer een lege controller zoals we deden in de schermafbeelding.
Deze controller heeft een broncode. Overschrijf deze met de volgende code.
// StudentenController.cs
using System.Web.Mvc; namespace MvcApplicationDemo.Controllers { public class StudentsController : Controller { public ContentResult Index() { return Content('This is default student page'); } } }
Om deze controller in het routebestand te configureren, hebben we enkele wijzigingen aangebracht in RouteConfig.cs bestand. Code wordt hieronder gegeven.
// 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 } ); } } }
Deze toepassing produceert dezelfde uitvoer voor lokalehost:52174 En localhost:52174/Studenten/Index
Omdat de routemodule van het MVC-framework de browser-URL toewijst aan het RouteConfig-bestand van het project.
Uitgang:
lijst methoden java
Dit is hetzelfde als hierboven, zelfs als we de controller- en actienamen expliciet hebben ingevoerd.