ASP.NET MVC 4
Адам Фриман
Маршрутизация
До введения MVC ASP.NET предполагал, что существует прямая связь между запрашиваемым URL-адресом и файлами на жестком диске сервера. Работы сервера заключалась в том, чтобы получить запрос от браузера и доставить выходные данные из соответствующего файла, а именно:
Запрашиваемый URL | Соответствующий файл |
http://mysite.com/default.aspx |
e:\webroot\default.aspx |
http://mysite.com/admin/login.aspx |
e:\webroot\admin\login.aspx |
http://mysite.com/articles/AnnualReview |
Файл не найден. Ошибка 404 |
Этот подход очень хорош для Web Forms, где каждая ASPX страница является и файлом, и ответом на запрос. Но это не имеет смысла для MVC приложения, где запросы обрабатываются методами действия в классах контроллеров и где нет однозначного соответствия с файлами на диске.
Для обработки MVC URL платформа ASP.NET использует систему маршрутизации (роутинга). В этой главе мы покажем вам, как настроить и использовать систему маршрутизации для создания мощной и гибкой обработки URL для ваших проектов. Вы увидите, что система маршрутизации позволяет создавать любые желаемые структуры URL и выражать их в ясной и сжатой форме. Система маршрутизации имеет две функции:
- Изучить входящий URL и выяснить, для какого контроллера и действия предназначен запрос. Как и следовало ожидать, мы хотим, чтобы система маршрутизации делала именно это, когда мы получаем запрос клиента.
- Создать исходящих URL. Это URL-адреса, которые появляются в HTML документе, показанном нашим представлением, так чтобы было вызвано определенное действие, когда пользователь кликает по ссылке (в этот момент мы снова получаем входящий URL).
В этой главе мы сосредоточимся на определении роутов и их использование для обработки входящих запросов, так чтобы пользователь мог достичь контроллеров и действий. Затем, в следующей главе, мы покажем вам, как использовать те же самые маршруты для генерации исходящих URL, которые будут вам нужны для представлений, а также покажем, как настроить систему маршрутизации и использовать ее для области (areas).
Создание и регистрация простого роута
Определение значений по умолчанию
Использование статических URL сегментов
Определение пользовательских переменных для сегментов