logo

Rutare ASP.NET MVC

În MVC, rutarea este un proces de mapare a solicitării browserului la acțiunea controlerului și de a returna răspunsul. Fiecare aplicație MVC are rutare implicită pentru cea implicită HomeController . Putem seta rutarea personalizată pentru controlerul nou creat.

The RouteConfig.cs fișierul este utilizat pentru a seta rutarea aplicației. Inițial conține următorul cod.

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

Conform acestui fișier de configurare, acțiunea Index a controlerului Home va fi tratată ca implicită. Prima dată, când aplicația rulează, produce următoarea ieșire.

Rutarea ASP 1

Dacă ne uităm la bara de adrese, aceasta conține doar localhost:52174 . Nu există controler și acțiunea este specificată deoarece routerul MVC mapează controlerul de la RouteConfig.cs.

Dacă introducem în mod explicit numele de controler și acțiuni în bara de adrese, acesta va redirecționa către aceeași acțiune. The localhost:52174/Home/Index va produce aceeași ieșire în browser.

Rutarea ASP 2

Acum, să creăm un nou controler și să-l configuram la fișierul de rută. Faceți clic dreapta pe Controlor folder și selectați adăugare, apoi controler. Va apărea o fereastră. selectați un controler gol așa cum am făcut în captura de ecran.

Rutarea ASP 3

Acest controler are un cod sursă, înlocuiți-l cu următorul cod.

// StudentsController.cs

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

Pentru a configura acest controler în fișierul de rută, am făcut câteva modificări în RouteConfig.cs fişier. Codul este dat mai jos.

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

Această aplicație produce aceeași ieșire pentru localhost:52174 și localhost:52174/Students/Index

Deoarece modulul de rută al cadrului MVC mapează adresa URL a browserului la fișierul RouteConfig al proiectului.

Ieșire:

sonu nigam

Rutarea ASP 4

Este la fel ca mai sus, chiar și noi am introdus în mod explicit numele de controler și acțiuni.

Rutarea ASP 5