ログイン資格情報を確認した後、response.redirect を呼び出しています。これはすべて .net Framework 3.5 で正常に動作しますが、.net 4.5 にアップグレードしても何も起こりません。同じページにとどまります。
私はさまざまな置換を試しました
System.Web.HttpContext.Current.Response.Redirect("/");
System.Web.HttpContext.Current.Response.Redirect("/", false);
System.Web.HttpContext.Current.ApplicationInstance.CompleteRequest();
何も機能していないようです。try キャッチを配置しましたが、false を使用しても例外は発生しません。
コードは asp:button onClick イベントから呼び出されています。クリックイベント中に、資格情報が正しいかどうかを確認し、ログイン設定セッション変数を実行して、役割に適したランディングページにリダイレクトします。
詳細情報 問題を基本的なシナリオに要約しました。次のシナリオでは、両方のボタンが Response.redirect を呼び出す同じ関数 btnTemp_Click を呼び出します。asp:button の場合は機能しますが、HTML5 ボタンの場合は機能しません。どちらの場合も、response.redirect のブレークポイントが実行されます。
<asp:Button ID="btnTemp" Text="Test Redirect" runat="server" OnClick="btnTemp_Click" />
<button id="btnTmp2" runat="server" onserverclick="btnTemp_Click" >button to Redirect</button>
protected void btnTemp_Click(object sender, EventArgs e)
{
HttpContext.Current.Response.Redirect("http://www.google.com", false);
}
asp:buttonが機能しなくなったボタンをクリックした後の奇妙な何か
まったく新しい Web アプリケーションを作成し、その中にこれらの 2 つのボタンしかない場合、両方で機能します。したがって、onserverclick がヒットするが、onclick がヒットしない場所で何かを実行しているコードが必要です。