多数の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を使用しています。