logo

Usmerjanje ASP.NET MVC

V MVC je usmerjanje postopek preslikave zahteve brskalnika v dejanje krmilnika in vrnitve odgovora nazaj. Vsaka aplikacija MVC ima privzeto usmerjanje za privzeto HomeController . Za novo ustvarjen krmilnik lahko nastavimo usmerjanje po meri.

The RouteConfig.cs se uporablja za nastavitev usmerjanja za aplikacijo. Na začetku vsebuje naslednjo kodo.

// 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 } ); } } } 

V skladu s to namestitveno datoteko bo dejanje indeksa domačega krmilnika obravnavano kot privzeto. Ko se aplikacija prvič zažene, ustvari naslednji rezultat.

Usmerjanje ASP 1

Če pogledamo naslovno vrstico, vsebuje le lokalni gostitelj: 52174 . Krmilnika ni in dejanje je navedeno, ker usmerjevalnik MVC preslika krmilnik iz RouteConfig.cs.

Če v naslovno vrstico izrecno vnesemo imena krmilnikov in dejanj, bo preusmerjen na isto dejanje. The localhost:52174/Domača stran/Kazalo bo brskalniku ustvaril enak rezultat.

Usmerjanje ASP 2

Zdaj pa ustvarimo nov krmilnik in ga konfigurirajmo v datoteko poti. Desni klik na Krmilnik mapo in izberite dodaj in nato krmilnik. Odprlo se bo okno. izberite prazen krmilnik, kot smo naredili na posnetku zaslona.

Usmerjanje ASP 3

Ta krmilnik ima nekaj izvorne kode, preglasite to z naslednjo kodo.

// StudentsController.cs

 using System.Web.Mvc; namespace MvcApplicationDemo.Controllers { public class StudentsController : Controller { public ContentResult Index() { return Content('This is default student page'); } } } 

Za konfiguracijo tega krmilnika v datoteki poti smo naredili nekaj sprememb RouteConfig.cs mapa. Koda je navedena spodaj.

// 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 } ); } } } 

Ta aplikacija ustvari enak rezultat za lokalni gostitelj: 52174 in localhost:52174/Students/Index

Ker modul poti ogrodja MVC preslika URL brskalnika v datoteko RouteConfig projekta.

Izhod:

c kodno polje nizov

Usmerjanje ASP 4

To je enako kot zgoraj, čeprav smo izrecno vnesli imena krmilnikov in dejanj.

Usmerjanje ASP 5