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.
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.
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.
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
È lo stesso di sopra anche se abbiamo inserito esplicitamente i nomi del controller e dell'azione.