logo

Routing ASP.NET MVC

In MVC, il routing è un processo di mappatura della richiesta del browser all'azione del controller e di restituzione della risposta. Ogni applicazione MVC ha il routing predefinito per default HomeController . Possiamo impostare un routing personalizzato per il controller appena creato.

IL RouteConfig.cs il file viene utilizzato per impostare il routing per l'applicazione. Inizialmente contiene il seguente codice.

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

Secondo questo file di installazione, l'azione Index del controller Home verrà trattata come predefinita. La prima volta, quando l'applicazione viene eseguita, produce il seguente output.

Percorso ASP 1

Se guardiamo la barra degli indirizzi, contiene solo host locale:52174 . Non è presente alcun controller e viene specificata un'azione perché il router MVC mappa il controller da RouteConfig.cs.

Se inseriamo esplicitamente i nomi del controller e delle azioni nella barra degli indirizzi, verrà reindirizzato alla stessa azione. IL localhost:52174/Home/Indice produrrà lo stesso output nel browser.

Percorso ASP 2

Ora creiamo un nuovo controller e configuriamolo nel file di route. Fare clic con il tasto destro su Controllore cartella e selezionare Aggiungi quindi controller. Apparirà una finestra. seleziona un controller vuoto come abbiamo fatto nella schermata.

Percorso ASP 3

Questo controller ha del codice sorgente, sovrascrivilo con il seguente codice.

// StudentController.cs

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

Per configurare questo controller nel file di percorso, abbiamo apportato alcune modifiche a RouteConfig.cs file. Il codice è riportato di seguito.

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

Questa applicazione produce lo stesso output per host locale:52174 E localhost:52174/Studenti/Indice

Poiché il modulo route del framework MVC associa l'URL del browser al file RouteConfig del progetto.

Produzione:

layout della griglia

Percorso ASP 4

È lo stesso di sopra anche se abbiamo inserito esplicitamente i nomi del controller e dell'azione.

Percorso ASP 5