Веб-формы 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
Другие вопросы по тегам