古いプロジェクトを asp 4.0 から 4.52 (ブートストラップに移行) に再構築しています。これは MVC ではなく Web フォーム Web サイトです。私の元のバージョンは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 形成を維持することは非常に重要です。
どうもありがとう!