簡體   English   中英

ASP.net Web表單-頁面路由命名沖突

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM