2011-12-15 15 views
1

私は.Net 4.0フレームワークを使用していて、いくつかのURLルーティングを行っています。これはMVCプロジェクトではなく、winformプロジェクトです。私はそれが適切な場所に行くと予想されるURLが表示されます「保留中のドキュメント/」のようなサイトナビゲーションにリンクをクリックするとAsp.net 4.0 URL concatinating url

 routes.MapPageRoute(
      "review",  // Route name 
      "documents/{type}",  // Route URL 
      "~/default.aspx" // Web page to handle route 
     ); 

     routes.MapPageRoute(
      "help",  // Route name 
      "resource/help",  // Route URL 
      "~/help.aspx" // Web page to handle route 
     ); 

:私はそうのようにGlobal.asaxの中で二つの経路を作成しました。再度「ドキュメント/承認」をクリックすると、URLは次のようになります。

http://localhost/documents/documents/accepted 

このページは見つかりませんでした。ヘルプリンクをクリックしてから文書を開くと、同じことが起こります。 URLは次のようになります。

http://localhost/resource/documents/pending 

ルーティングはなぜURLを連結していますか?これをどうすれば解決できますか?事前に

おかげで

答えて

1

私は、彼らが常にルートに行くしようとしている異なった場合、あなたのルートを設定する必要があると思います。このような何か:

 routes.MapPageRoute(
     "review",  // Route name 
     "~/documents/{type}",  // Route URL 
     "~/default.aspx" // Web page to handle route 
    ); 

    routes.MapPageRoute(
     "help",  // Route name 
     "~/resource/help",  // Route URL 
     "~/help.aspx" // Web page to handle route 
    ); 

理由は、あなたがであるどんなレベルの最後にドキュメント/ page.aspxを追加していることです。だから、あなたはhttp://localhost/this/next/folder/document/accept であり、あなたは、ルート、次のいずれかがあなたの現在のディレクトリそうhttp://localhost/this/next/folder/document/document/acceptへのルートを追加しますが、私のようなあなたのルートがどうなるその上にあった場合、これは

+0

あなたの正しいhttp://localhost/document/acceptに行くことができます。私がそれを機能させるためにしなければならなかった変更は、リンク先のURLであった。以前私は 'ドキュメント/保留中'に変更しました。 '/ドキュメント/保留中'を変更し、すべて動作しています。ルートURLに '〜/'を追加しようとすると、このエラーが発生しました。ルートURLは '/'または '〜'文字で始めることはできず、 '?'キャラクター。ご協力いただきありがとうございます – rross

関連する問題