ASP.NET Web表单 - 页面路由命名冲突



我正在将一个旧项目从ASP 4.0重建为4.52(移至Bootstrap(。这是一个网站网站而不是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重新路由,该版本默认情况下为/page。由于我不想重定向保持当前URL的形成非常重要。

非常感谢!

我认为您需要为每个路由名称具有不同的名称,例如:

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

解决问题 -

更改:

RouteConfig.RegisterRoutes(RouteTable.Routes)
BundleConfig.RegisterBundles(BundleTable.Bundles)
RegisterRoutes(RouteTable.Routes)

to:

 RegisterRoutes(RouteTable.Routes)
    RouteConfig.RegisterRoutes(RouteTable.Routes)
    BundleConfig.RegisterBundles(BundleTable.Bundles)

谢谢

最新更新