MVC maršruto parinkimas yra naršyklės užklausos susiejimo su valdiklio veiksmu ir atsakymo grąžinimo procesas. Kiekviena MVC programa turi numatytąjį maršrutą HomeController . Galime nustatyti pasirinktinį maršrutą naujai sukurtam valdikliui.
The RouteConfig.cs failas naudojamas programos maršrutui nustatyti. Iš pradžių jame yra toks kodas.
// 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 } ); } } }
Pagal šį sąrankos failą namų valdiklio rodyklės veiksmas bus traktuojamas kaip numatytasis. Pirmą kartą paleidus programą, ji sukuria tokią išvestį.
Jei pažvelgsime į adreso juostą, joje yra tik localhost: 52174 . Valdiklio nėra, o veiksmas nurodytas, nes MVC maršrutizatorius susieja valdiklį iš RouteConfig.cs.
Jei adreso juostoje aiškiai įvesime valdiklio ir veiksmų pavadinimus, jis bus nukreiptas į tą patį veiksmą. The localhost:52174/Pagrindinis/Indeksas pateiks tą pačią išvestį į naršyklę.
Dabar sukurkime naują valdiklį ir sukonfigūruokite jį maršruto faile. Dešiniuoju pelės mygtuku spustelėkite Valdiklis aplanką ir pasirinkite pridėti, tada valdiklį. Atsivers langas. pasirinkite tuščią valdiklį, kaip tai padarėme ekrano kopijoje.
Šis valdiklis turi tam tikrą šaltinio kodą, nepaisykite to šiuo kodu.
// StudentsController.cs
using System.Web.Mvc; namespace MvcApplicationDemo.Controllers { public class StudentsController : Controller { public ContentResult Index() { return Content('This is default student page'); } } }
Norėdami sukonfigūruoti šį valdiklį maršruto faile, atlikome keletą pakeitimų RouteConfig.cs failą. Kodas pateiktas žemiau.
// 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 } ); } } }
Ši programa sukuria tą pačią išvestį localhost: 52174 ir localhost:52174/Students/Index
Kadangi MVC sistemos maršruto modulis susieja naršyklės URL su projekto RouteConfig failu.
Išvestis:
kas yra 10 iš 60
Tai yra tas pats, kas aukščiau, net mes aiškiai įvedėme valdiklio ir veiksmų pavadinimus.