Веб-формы ASP.net - конфликт имен маршрутизации страниц
Я перестраиваю старый проект с asp 4.0 до 4.52 (переход к начальной загрузке). Это веб-сайт веб-форм, а не MVC. Моя оригинальная версия была сделана с VS2012, а теперь с VS 2015, которая немного изменилась, например, добавив по умолчанию класс RouteConfig.
В V4.0 мой URL формировался следующим образом:
domain.com/nike-shoes
domain.com/nike-shoes/nike-air-pegasus-21-1001
На моем новом сайте это не работает из-за двуличности "/nike-shoes".
Звонок "domain.com/nike-shoes/nike-air-pegasus-21" будет просто называть "domain.com/nike-shoes"
Вот "новый" код:
Sub Application_Start(sender As Object, e As EventArgs)
RouteConfig.RegisterRoutes(RouteTable.Routes)
BundleConfig.RegisterBundles(BundleTable.Bundles)
RegisterRoutes(RouteTable.Routes)
End Sub
Sub RegisterRoutes(ByVal routes As RouteCollection)
routes.MapPageRoute("Nike-Shoes", "nike-shoes", "~/nike-shoes.aspx")
routes.MapPageRoute("Nike-Shoe", "nike-shoes/{shoe-id}", "~/display-shoe.aspx")
End Sub
Старый код RegisterRoutes Sub был таким же, но Application_Start отличался (не было RouteConfig):`
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
RegisterRoutes(RouteTable.Routes)
End Sub
Предыдущая версия также нуждалась в перенаправлении с /page.aspx на / page, которая теперь по умолчанию. Поскольку я не хочу делать переадресацию, сохранение текущего формирования URL-адреса крайне важно.
Большое спасибо!
2 ответа
Задача решена -
Изменен:
RouteConfig.RegisterRoutes(RouteTable.Routes)
BundleConfig.RegisterBundles(BundleTable.Bundles)
RegisterRoutes(RouteTable.Routes)
Для того, чтобы:
RegisterRoutes(RouteTable.Routes)
RouteConfig.RegisterRoutes(RouteTable.Routes)
BundleConfig.RegisterBundles(BundleTable.Bundles)
Спасибо
Я думаю, вам нужно иметь разные имена для каждого имени маршрута, например:
Sub RegisterRoutes(ByVal routes As RouteCollection)
routes.MapPageRoute("Nike-Shoes", "nike-shoes", "~/nike-shoes.aspx")
routes.MapPageRoute("Nike-Shoes-2", "nike-shoes/{shoe-id}", "~/display-shoe.aspx")
End Sub