пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Определение маршрутов. Работа с маршрутами. Генерация исходящих адресов URL. Области (Areas). Создание собственного обработчика маршрутов.

Определение маршрутов. Работа с маршрутами.

         Установкой маршрутов занимается статический метод RegisterRoutes. Вызывается этот метод файле Global.asax в методе Application_Start.

Далее идет собственно определение маршрута по умолчанию. Метод routes.MapRoute выполняет сопоставление маршрута запросу. В перегруженных версиях данного метода мы можем задать дополнительные параметры сопоставления.

         Шаблон URL включает в себя несколько сегментов, которые заключены в фигурные скобки. В данном случае сегмент представляет часть запроса, которая находится между слешами. Каждый такой сегмент шаблона содержит параметр. Эти параметры называются параметрами URL. В данном случае это параметры controller, action и id. Но вообще параметры могут иметь различные имена, включающие любые алфавитно-цифровые символы.

Третий параметр метода routes.MapRoute - defaults определяет значения по умолчанию для маршрута.

defaults: new { controller = "Book", action = "Show", id = UrlParameter.Optional }

Последний параметр объявлен как необязательный id = UrlParameter.Optional, поэтому, если он не указан в строке запроса, он не будет учитываться

Генерация исходящих адресов URL.

Наиболее простой способ вывода адреса является использование анкора - элемента a:<a href="Home/Index/3" />

Но также мы можем использовать специальные хелперы рендеринга - Html.ActionLink и Html.RouteLink

Html.ActionLink

Хелпер ActionLink создает гиперссылку на действие контроллера. Если мы создаем ссылку на действие, определенное в том же контроллере, то можем просто указать имя действия: @Html.ActionLink("Жми здесь", «Имя_Метода",”Имя_контроллера”) Что создаст вам следующую разметку:

<a href="/ Имя_контроллера / Имя_Метода ">Жми здесь</a>

Html.RouteLink

Хелпер RouteLink использует похожий шаблон, что и ActionLink: он принимает имя маршрута, но не требует аргументов для имени контроллера и имени действия.

Чтобы использовать маршрут, нам просто надо указать имя определенного нами маршрута и затем определить при необходимости дополнительные параметры.

Создание собственного обработчика маршрутов.

Процесс маршрутизации состоит из следующих этапов:

Модуль UrlRoutingModule пытается сопоставить текущий запрос с маршрутами в таблице RouteTable.

Если сопоставление завершилось удачно, то модуль маршрутизации выбирает обработчик маршрутов сопоставленного маршрута - объект IRouteHandler.

Затем у объекта IRouteHandler вызывается метод GetHandler, который возвращает объект IHttpHandler, используемый для обработки запроса.

У обработчика IHttpHandler вызывается метод ProcessRequest для обработки запросов.


14.01.2019; 12:29
хиты: 143
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь