2012-02-27 32 views
0

私のASP.NET Webフォームアプリケーションでは、私は2つのページを持っていますMyPage.aspxLogin.aspx。ユーザーはASP.NETではResponse.RedirectがターゲットURLのPage_Loadイベントを妨害しますか?

マイページであり、ユーザがLogin.aspxのにもたらされる

<a href="~/Login.aspx?ref=~/MyPage.aspx">login</a> 

のクリックをログインする必要があり、ログインボタンにユーザ名とパスワードとクリックを入ると。ページがPage_Loadイベントが発生されていない(または少なくともそのイベントハンドラが実行されない)リダイレクトされた場合login_onClickイベントハンドラは、いくつかの動作を実行し、

myUrl = Request.QueryString["ref"]; 
Response.Redirect(myUrl); //myUrl = "~/MyPage.aspx" 

Response.Redirectの典型的な(本当に奇妙な)動作ですか?それがどのように私はこの動作を妨げることができる場合は、Page_Loadを発射するために?

PS:私はあなたのケースMyPage.aspxには、あなたがキャッシュ可能性を有効にする必要があるだろう、リダイレクト先のキャッシュされたコピーを使用してからブラウザを維持するために無成功

+0

この質問に対する回答はまだありますか?それとも、コミュニティと共有できる別の方法で解決しましたか? –

+0

問題は非常にばかげていました。最初にアプリケーションを開発した人は、絶対URLを使用しました。つまり、リダイレクトしていたときに、開発版に行くのではなく、実際のWebサイトを参照していた絶対URLに行きました。だからこそ、デバッグ中にpage_loadに入ることがなかったのです – CiccioMiami

+0

Yikes。その場合、私は鞭打ちを含むように答えを修正する必要があります。あなたはこの質問を閉じることができますか? –

答えて

0

にリダイレクトする前にResponse.Cache.SetCacheability(HttpCacheability.NoCache)を入れてみましたMyPage.aspxの有効期限を設定し、リダイレクト前に設定しないでください。 リダイレクトは実際にクライアントブラウザに応答を返し、別のページを要求するように指示します。リダイレクトコールの直前にキャッシュを削除することで、実際にはその時点でLogin.aspxである現在のページをキャッシュしないようブラウザに指示しています。

関連する問題