2016-12-17 33 views
1

私はasp.net WebフォームのWebサイトを持っています。それは、URLに優しい構造を使用します。私にURLがあるとしますwww.site.com/experience/experience-category。ここでは2つの異なるページが経験カテゴリの&を経験しています。今すぐこのURLにアクセスしようとすると、www.site.com/experience/experience-categoryこのページは表示されません。それは私にwww.site.com/experienceのページを示しています。どのようにこれを解決できますか?動的URLルーティングがASP.NET Webフォームサイトで機能しない

RouteConfig

Public Module RouteConfig 
    Public Sub RegisterRoutes(routes As RouteCollection) 
     Dim settings = New FriendlyUrlSettings() 
     settings.AutoRedirectMode = RedirectMode.Permanent 
     routes.EnableFriendlyUrls(settings) 

     routes.MapPageRoute("experience-category", "experience/{name}", "~/experience-category.aspx") 'For Experience Category 
    End Sub 
End Module 

答えて

1

あなたができることの数があります。

routes.EnableFriendlyUrls(settings)は基本的にルートコレクションに2つのルートを追加しています。

問題は、設定したルートURLの一部と同じ名前の.aspx(experience.aspx)があることです(experience/{name})。 ルーティングはルートコレクションの最初の一致を探します(この場合はEnableFriendlyUrlsのルートになります)。

あなたはこれを克服したい場合は、次の操作を行うことができます:

1.Execute routes.MapPageRoute routes.EnableFriendlyUrls(設定)する前に:これは、最初にこのルールを置く

Public Module RouteConfig 
    Public Sub RegisterRoutes(routes As RouteCollection) 
     routes.MapPageRoute("experience-category", "experience/{name}", "~/experience-category.aspx") 'For Experience Category 

     Dim settings = New FriendlyUrlSettings() 
     settings.AutoRedirectMode = RedirectMode.Permanent 
     routes.EnableFriendlyUrls(settings) 

    End Sub 
End Module 

は、暴行FriendlyUrlSettings:

それとも

2.(代わりにMapPageRouteの)ルートコレクションの開始時に、あなたのルールを挿入する挿入:

EnableFriendlyUrlルーティングルールと
Dim settings = New FriendlyUrlSettings() 
    settings.AutoRedirectMode = RedirectMode.Permanent 
    routes.EnableFriendlyUrls(settings) 

    Dim overwrExperienceUrl As String = "experience/{name}" 
    Dim overwrExperiencePRH As New PageRouteHandler("~/experience-category.aspx") 
    Dim overwrExperienceRoute As New Route(overwrExperienceUrl, overwrExperiencePRH) 
    routes.Insert(0, overwrExperienceRoute) 

3.Avoid試合:

それはこの場合には干渉しないように、フォルダに(Experience.aspx)(s)はあなたのコントロールを移動します。

関連する問題