logo

ASP.NET MVC-Routing

In MVC ist Routing ein Prozess, bei dem die Browseranforderung der Controller-Aktion zugeordnet und eine Antwort zurückgegeben wird. Jede MVC-Anwendung verfügt standardmäßig über ein Standardrouting HomeController . Wir können benutzerdefiniertes Routing für neu erstellte Controller festlegen.

Der RouteConfig.cs Die Datei wird verwendet, um das Routing für die Anwendung festzulegen. Es enthält zunächst den folgenden Code.

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

Gemäß dieser Setup-Datei wird die Indexaktion des Home-Controllers als Standard behandelt. Wenn die Anwendung zum ersten Mal ausgeführt wird, wird die folgende Ausgabe erzeugt.

ASP-Routing 1

Wenn wir uns die Adressleiste ansehen, enthält sie nur localhost:52174 . Es ist kein Controller vorhanden und es ist keine Aktion angegeben, da der MVC-Router den Controller dem zuordnet RouteConfig.cs.

Wenn wir explizit Controller- und Aktionsnamen in die Adressleiste eingeben, wird auf dieselbe Aktion umgeleitet. Der localhost:52174/Home/Index erzeugt die gleiche Ausgabe an den Browser.

ASP-Routing 2

Jetzt erstellen wir einen neuen Controller und konfigurieren ihn für die Routendatei. Klicken Sie mit der rechten Maustaste auf Regler Ordner und wählen Sie „Hinzufügen“ und dann „Controller“. Es öffnet sich ein Fenster. Wählen Sie einen leeren Controller aus, wie wir es im Screenshot getan haben.

ASP-Routing 3

Dieser Controller verfügt über Quellcode. Überschreiben Sie diesen mit dem folgenden Code.

// StudentsController.cs

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

Um diesen Controller in der Routendatei zu konfigurieren, haben wir einige Änderungen vorgenommen RouteConfig.cs Datei. Der Code ist unten angegeben.

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

Diese Anwendung erzeugt die gleiche Ausgabe für localhost:52174 Und localhost:52174/Students/Index

Weil das Routenmodul des MVC-Frameworks die Browser-URL der RouteConfig-Datei des Projekts zuordnet.

Ausgabe:

Beispiel für eine Java-Karte

ASP-Routing 4

Dies ist dasselbe wie oben, auch wenn wir Controller- und Aktionsnamen explizit eingegeben haben.

ASP-Routing 5