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

Згідно з цим файлом налаштування, дія індексу домашнього контролера розглядатиметься як типова. Під час першого запуску програми виводиться такий вихід.

Маршрутизація 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