0

我正在将一个旧项目从 asp 4.0 重建到 4.52(移动到引导程序)。这是一个 Web 表单网站,而不是 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 格式非常重要。

多谢!

4

2 回答 2

0

我认为您需要为每个路线名称使用不同的名称,例如:

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
于 2017-06-06T10:31:15.713 回答
0

问题解决了 -

改变:

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

至:

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

谢谢

于 2017-06-07T12:58:24.807 回答