logo

Routing ASP.NET MVC

W MVC routing to proces mapowania żądania przeglądarki na akcję kontrolera i zwracania odpowiedzi. Każda aplikacja MVC ma domyślny routing dla ustawień domyślnych Kontroler domowy . Możemy ustawić własny routing dla nowo utworzonego kontrolera.

The RouteConfig.cs plik służy do ustawiania routingu dla aplikacji. Początkowo zawiera następujący kod.

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

Zgodnie z tym plikiem instalacyjnym akcja Index kontrolera Home będzie traktowana jako domyślna. Po pierwszym uruchomieniu aplikacja generuje następujące dane wyjściowe.

Routing ASP 1

Jeśli spojrzymy na pasek adresu, zawiera on tylko host lokalny:52174 . Nie ma kontrolera i określono akcję, ponieważ router MVC odwzorowuje kontroler z pliku RouteConfig.cs.

Jeśli jawnie wpiszemy nazwy kontrolera i akcji w pasku adresu, nastąpi przekierowanie do tej samej akcji. The localhost:52174/Home/Index wygeneruje ten sam wynik w przeglądarce.

Routing ASP2

Teraz utwórzmy nowy kontroler i skonfigurujmy go do pliku trasy. Kliknij prawym przyciskiem myszy Kontroler folder i wybierz opcję dodaj, a następnie kontroler. Wyskoczy okno. wybierz pusty kontroler, tak jak to zrobiliśmy na zrzucie ekranu.

Routing ASP 3

Ten kontroler ma jakiś kod źródłowy, zastąp go następującym kodem.

// StudentController.cs

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

Aby skonfigurować ten kontroler w pliku trasy, wprowadziliśmy pewne zmiany w RouteConfig.cs plik. Kod podano poniżej.

// 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 aplikacja generuje takie same dane wyjściowe dla host lokalny:52174 I localhost:52174/Students/Index

Ponieważ moduł trasy platformy MVC odwzorowuje adres URL przeglądarki na plik RouteConfig projektu.

Wyjście:

ramy wiosenne

Routing ASP 4

To samo, co powyżej, nawet jeśli jawnie wprowadziliśmy nazwy kontrolera i akcji.

Routing ASP5