V MVC je smerovanie proces mapovania požiadavky prehliadača na akciu ovládača a vrátenia odpovede späť. Každá aplikácia MVC má predvolené smerovanie HomeController . Pre novovytvorený radič môžeme nastaviť vlastné smerovanie.
The RouteConfig.cs súbor sa používa na nastavenie smerovania pre aplikáciu. Spočiatku obsahuje nasledujúci kód.
// 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 } ); } } }
Podľa tohto inštalačného súboru sa akcia indexu domáceho ovládača bude považovať za predvolenú. Prvýkrát, keď sa aplikácia spustí, vytvorí nasledujúci výstup.
Ak sa pozrieme na panel s adresou, obsahuje iba localhost:52174 . Neexistuje žiadny ovládač a akcia je špecifikovaná, pretože smerovač MVC mapuje ovládač z RouteConfig.cs.
Ak do panela s adresou explicitne zadáme názvy ovládačov a akcií, presmeruje sa na rovnakú akciu. The localhost:52174/Home/Index vytvorí rovnaký výstup do prehliadača.
Teraz vytvoríme nový ovládač a nakonfigurujeme ho na súbor trasy. Kliknite pravým tlačidlom myši na Ovládač priečinok a vyberte pridať a potom ovládač. Zobrazí sa okno. vyberte prázdny ovládač, ako sme to urobili na snímke obrazovky.
Tento ovládač má nejaký zdrojový kód, prepíšte ho nasledujúcim kódom.
// StudentsController.cs
using System.Web.Mvc; namespace MvcApplicationDemo.Controllers { public class StudentsController : Controller { public ContentResult Index() { return Content('This is default student page'); } } }
Na konfiguráciu tohto ovládača v súbore trasy sme vykonali niekoľko zmien RouteConfig.cs súbor. Kód je uvedený nižšie.
// 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 } ); } } }
Táto aplikácia vytvára rovnaký výstup pre localhost:52174 a localhost:52174/Students/Index
Pretože modul trasy rámca MVC mapuje adresu URL prehliadača na súbor RouteConfig projektu.
Výkon:
armstrongovo číslo
Je to rovnaké ako vyššie, aj keď sme explicitne zadali názvy ovládačov a akcií.