我正在将一个旧项目从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)
谢谢