4

Server.Transferボタンをクリックすると、別のページのコンテンツを読み込むために使用しています。これは期待どおりに機能し、URL は同じままです。ただし、2 ページ目のボタンをクリックして 3 ページ目を読み込もうとすると、URL が 2 ページ目の URL に変わります。最初のページのURLを保持することを期待しています。

例:

  1. Page1.aspxロードします。
    • URL:.../Page1.aspx
    • コンテンツ:Page1.aspx
  2. Server.Transfer("~/Page2.aspx")ボタンクリック時。
    • URL:.../Page1.aspx
    • コンテンツ:Page2.aspx
  3. Server.Transfer("~/Page3.aspx")ボタンクリックで
    • URL:.../Page2.aspx
    • コンテンツ:Page3.aspx

3 番目のステップで URL が変わるのはなぜですか?

4

2 に答える 2

2

を呼び出すとServer.Transfer()、1 ページ目の実行が停止され、同じ HTTP リクエスト内で代わりに 2 ページ目が実行されます。次に、2 番目のページ (Page2.aspx) が、その URL に対して直接行われる通常の要求と同じ方法で実行されるため、フォームのアクションは独自の URL に設定されます (から呼び出されるにもかかわらずServer.Transfer())。

そうでない場合、フォームが送信されたときに Page1.aspx に投稿されますが (予想どおり)、このページには必ずしも同じコントロールが含まれているとは限らず、要求を処理できません。

于 2013-02-26T13:56:32.987 に答える
-3

これは役立つかもしれません:

Response.Redirect("~/page.aspx",false)
于 2013-02-26T13:47:42.197 に答える