[英]ASP.net Web forms - Page Routing Naming Conflict
我正在將一個舊項目從asp 4.0重建到4.52(移至bootstrap)。 這是一個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,現在默認情況下是。 由於我不想執行重定向,因此保持當前的網址格式極為重要。
非常感謝!
我認為您需要為每個路線名稱使用不同的名稱,例如:
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)
至:
RegisterRoutes(RouteTable.Routes)
RouteConfig.RegisterRoutes(RouteTable.Routes)
BundleConfig.RegisterBundles(BundleTable.Bundles)
謝謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.