0

古いプロジェクトを 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 形成を維持することは非常に重要です。

どうもありがとう!

4

2 に答える 2

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 に答える