logo

ASP.NET MVC маршрутизиране

В MVC маршрутизирането е процес на съпоставяне на заявката на браузъра към действието на контролера и връщане на отговор обратно. Всяко MVC приложение има маршрутизация по подразбиране HomeController . Можем да зададем персонализирано маршрутизиране за новосъздадения контролер.

The RouteConfig.cs файл се използва за задаване на маршрутизиране за приложението. Първоначално съдържа следния код.

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

Съгласно този инсталационен файл, действието Index на домашния контролер ще се третира по подразбиране. Първият път, когато приложението се стартира, то произвежда следния изход.

ASP маршрутизиране 1

Ако погледнем адресната лента, тя съдържа само локален хост: 52174 . Няма контролер и действието е указано, защото MVC рутерът картографира контролера от RouteConfig.cs.

Ако изрично въведем имена на контролери и действия в адресната лента, тя ще пренасочи към същото действие. The localhost:52174/Начало/Индекс ще произведе същия изход към браузъра.

ASP маршрутизиране 2

Сега нека създадем нов контролер и да го конфигурираме към файла с маршрута. Щракнете с десния бутон върху Контролер папка и изберете добавяне след това контролер. Ще изскочи прозорец. изберете празен контролер, както направихме на екранната снимка.

ASP маршрутизиране 3

Този контролер има някакъв изходен код, заменете го със следния код.

// StudentsController.cs

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

За да конфигурираме този контролер във файла с маршрута, направихме някои промени в RouteConfig.cs файл. Кодът е даден по-долу.

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

Това приложение произвежда същия резултат за локален хост: 52174 и localhost:52174/Студенти/Индекс

Тъй като модулът за маршрут на рамката MVC картографира URL адреса на браузъра към файла RouteConfig на проекта.

Изход:

c програмен масив от низове

ASP маршрутизиране 4

Това е същото като по-горе, дори сме въвели изрично имена на контролери и действия.

ASP маршрутизиране 5