В настоящее время я работаю над проектом MVC, в котором я пытаюсь получить вид динамической маршрутизации.Моя идея состояла в том, чтобы я оставил исходный маршрут в global.asax.cs, так что он позаботится о каждом контроллере, который я создаю.Например, контроллеры «Контакт» и «Учетная запись».
Вышеуказанные контроллеры будут иметь URL-адрес, подобный
/Contact/
/Account/Logoff/ etc.
Второй маршрут, который я хочу добавить, - это маршрут по умолчанию, когда нетКонтроллеры найдены.В этом случае я предполагаю, что это будет маршрут к странице или pagedetails.
Например, URL будут:
/BBQ/
/BBQ/Accesoires/
У меня есть три маршрута, добавленных в global.asax.cs, которыеЯ думаю, что это правильно.(Также в правильном порядке).Ниже я добавил маршруты:
routes.MapRoute(
"DefaultRoute", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Page", action = "Index", id = UrlParameter.Optional });
routes.MapRoute(
"DefaultPageRoute",
"{category}",
new { controller = "Page", action = "Index", category = UrlParameter.Optional });
routes.MapRoute(
"SecondLevelPageRoute",
"{category}/{subCategory}",
new { controller = "Page", action = "PageDetails", category = UrlParameter.Optional, subCategory = UrlParameter.Optional });
с этой настройкой, вызовы на контроллеры работают нормально, но на такие страницы, как / BBQ /, выдает ошибку ниже:
Ошибка сервера в '/ 'Приложение.
Ресурс не найден.
Если я прокомментирую первый маршрут и перейду к / BBQ / url, он будет работать как шарм.Что я наблюдаю в этом маршруте?