多数のWebフォームを持つ古いアプリケーションがあります。すべてaspxのページには、ユーザーを前のページに移動させる指定の戻るボタンがあります。すべてのボタンで、javascriptonclickイベントがに設定されていhistory.back()ます。
あるaspxページでは、戻るボタンがまったく機能しませんでした。同じことを実現するサーバー側のボタンを使用することにしました。ボタンのonclickイベントには、ユーザーを前のページに移動するために必要なコードが含まれています。
最初に次の方法でonclickイベントを作成しましたが、戻るボタンがまったく機能しませんでした。デバッグモードに入ると、prevPage変数が前のページのURLではなく現在のページのURLを保持していることがわかりました。
private void btnBack_Click(object sender, System.EventArgs e)
{
string prevPage = Request.UrlReferrer.ToString();
Response.Redirect(prevPage);
}
次に、prevPageを静的変数に変更し、その値をif(!IsPostBack)ブロック内に設定するように定義しました。これで、戻るボタンが正しく機能しました。
static string prevPage = string.Empty;
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
prevPage = Request.UrlReferrer.ToString();
}
}
private void btnBack_Click()
{
Response.Redirect(prevPage);
}
最初の試みがうまくいかない理由と、2回目の試みがうまくいかない理由がわかりませんでした。
history.back()この特定のページで、またはが機能しない何かが起こっている場合、これが説明になるかもしれないと私は感じていますhistory.go(-1)。
これについての洞察を提供していただけますか?
編集:私はIE8を使用しています。