0

ルーティングを使用する Web フォーム アプリケーションを想像してみてください。次のようなきれいなページ名:

http://www.mywebsite.com/home

次の URL の基になる可能性があります。

http://www.mywebsite.com/page.aspx?id=3

ユーザーがブラウザにhttp://www.mywebsiter.com/page.aspx?id=3と入力した場合、 http ://www.mywebsite.com/homeにリダイレクトする必要があります。

これは可能ですか?物理ページに対してルーティング エンジンが実行されず、page.aspx の Page_Load メソッドでは、URL が直接入力されたか、ルートの結果であったかを知る方法がないため、これを行う方法がわかりません。

4

2 に答える 2

1

このコレクションを使用してPage.RouteData.Values、直接 URL ではなく、ルーティングによってページが読み込まれているかどうかを検出できます。これは Page_Load() で実行できます。

ルート データ値が存在する場合 (存在することがわかっている値を確認することが多いでしょう)、それらは問題ありません。ルート データ値がない場合、ページは「直接」読み込まれたため、リダイレクトする必要があります。

于 2010-10-05T23:35:56.600 に答える
0

IIS URL 書き換えモジュールを確認してください。

また、ファイル ( ) のルーティングを無効にするなどの方法を検討することもできますRouteTable.Routes.RouteExistingFiles = false;が、これは危険な場合があります。

于 2010-10-05T23:41:09.803 に答える