Я заметил, что в MVC 2 Preview 2, AreaRegistration загружает маршруты для каждой области в произвольном порядке. Есть ли хороший способ получить один за другим?MVC 2 AreaRegistration Routes Order
Например, у меня есть две области - «Сайт» и «Админ». Оба имеют контроллер «Blog».
Я хотел следующее:
/admin/ --> go to Admin's Blog controller
/ --> go to Site's Blog controller.
Проблема заключается в том, что она загружается маршрут сайта первого, так что соответствие {controller}/{action}/{id}
вместо admin/{controller}/{action}/{id}
, когда я иду в URL «/ администратор /». Затем я получаю 404, потому что в области «Сайт» нет контроллера администратора.
Обе области по умолчанию для контроллера «Блог». Я понимаю, что я мог бы просто поставить site/{controller}/...
в качестве URL-адреса, но я предпочел бы иметь его в корне, если это возможно. Я также попытался сохранить маршрут по умолчанию в глобальной функции RegisterRoutes, однако он не отправляется в область «Сайты».
Заранее благодарен!
Хей Фил, спасибо за объяснение. Я закончил перемещение своего «сайта» из областей, и теперь это раздел «default/non-area» (с представлениями и контроллерами в корне). Затем я задал свой параметр namespace paramater контроллерам по умолчанию, чтобы избежать ошибки «неоднозначного контроллера». Кроме того, я мог бы, вероятно, установить ограничения на что-то вроде^((! Admin). *), Чтобы игнорировать админа в маршрутах области сайта. Согласен, добавив, что сложность невелика, хотя кажется, что маршруты mvc 1 (non area) потенциально могут сильно зависеть от порядка. Спасибо! – Jason
Процесс маршрутизации обычно зависит от порядка правил, поэтому функция «упорядочения» может быть важной. – twk
См. Мой ответ на два метода, которые позволяют вам заказать регистрацию области (и, следовательно, их маршруты) в любом порядке. – Eilon