C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

redirectで遷移時にPageLoadが発生しない /スペックル (23/12/01(Fri) 22:04) #102664
Re[1]: redirectで遷移時にPageLoadが発生しない /WebSurfer (23/12/01(Fri) 22:45) #102665
Re[1]: redirectで遷移時にPageLoadが発生しない /WebSurfer (23/12/01(Fri) 23:18) #102666
  └ Re[2]: redirectで遷移時にPageLoadが発生しない /スペックル (24/01/15(Mon) 14:17) #102839 解決済み


親記事 / ▼[ 102665 ] ▼[ 102666 ]
■102664 / 親階層)  redirectで遷移時にPageLoadが発生しない
□投稿者/ スペックル (1回)-(2023/12/01(Fri) 22:04:46)

分類:[ASP.NET (C#)] 

初めて投稿します。よろしくお願いします。

ASP.NET C#のWebFormを使用して開発を行っております。
その中で、ブラウザバックを絡めた遷移を行った際に、
PageLoadが発生しない事象で困っております。
以下が発生している事象や、試したことになります。

■事象
@画面Aから画面Bへブラウザバックを使用して遷移
A画面BのPageLoadイベントで画面CへResponse.Redirectを使用して遷移(画面Cへ遷移時に「Global.asax」の「Application_PreRequestHandlerExecute」が実行されていないことは確認済み)
B画面CのPageLoadイベントが実行されず、キャッシュ(?)からページを表示される


■試したこと
・「Response.Redirect」の第2引数をtrue、falseどちらも実施したが、影響なし。
・「Response.Cache.SetCacheability(HttpCacheability.NoCache);」を画面CのPageLoadに実装したが変わらない。
・「Response.Redirect」を「Server.Transfer」に変更し、実行。
 →PageLoadは実行されるようになるが、URLは画面Bのままとなり、仕様上の不都合がある。

■実現したいこと
「Response.Redirect」で事象B時にPageLoadを実行できるようにしたい。

■環境
Windows 10 Pro
Visual Studio Professional 2017 Version15.9.4
Microsoft .NET Framework Version 4.8.09037(プロジェクトのターゲットフレームワークは4.7.2)

対応をご教授頂けると幸いです。
[ □ Tree ] 返信 編集キー/

▲[ 102664 ] / 返信無し
■102665 / 1階層)  Re[1]: redirectで遷移時にPageLoadが発生しない
□投稿者/ WebSurfer (2830回)-(2023/12/01(Fri) 22:45:38)
No102664 (スペックル さん) に返信

> @画面Aから画面Bへブラウザバックを使用して遷移

「ブラウザバック」って何ですか?

ごく簡単なサンプルで良いので、コピペすれば問題を再現できる画面 A 〜 C のコーを作成
してアップし、再現手順を書くことはできますか?

そうしてもらえると話が早いと思います。
[ 親 102664 / □ Tree ] 返信 編集キー/

▲[ 102664 ] / ▼[ 102839 ]
■102666 / 1階層)  Re[1]: redirectで遷移時にPageLoadが発生しない
□投稿者/ WebSurfer (2831回)-(2023/12/01(Fri) 23:18:27)
No102664 (スペックル さん) に返信

「ブラウザバック」というのは、画面B ⇒ 場面A と遷移した後、ブラウザの左上に
表示されている戻るボタンをクリックして画面B を再表示するということですか?

そういうことであれば、

> @画面Aから画面Bへブラウザバックを使用して遷移

は、ブラウザのキャッシュから取得して画面 B を表示するので、

> A画面BのPageLoadイベントで画面CへResponse.Redirectを使用して遷移

はできません。サーバー側では何も動かないので、当然 Page.Load イベントは発生せず、
そこでれダイレクトとするというようなことはできません。

そうことであれば、上にお願いしたサンプルコードは結構です。
[ 親 102664 / □ Tree ] 返信 編集キー/

▲[ 102666 ] / 返信無し
■102839 / 2階層)  Re[2]: redirectで遷移時にPageLoadが発生しない
□投稿者/ スペックル (2回)-(2024/01/15(Mon) 14:17:48)
事象が再現するサンプルコードは作成できませんでしたが、
キャッシュの問題だと言うことがわかりました。

そのため、該当画面のページロードイベント時に
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();
を設定することで、
実現したいことができました。

ありがとうございました。
解決済み
[ 親 102664 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -