9

重複の可能性:
ブラウザで戻るボタンのクリックを検出する

Page1 と Page2 の 2 つのページがあります。リンクをクリックしてPage1からPage2に移動するとき、Page2でブラウザの戻るボタンをクリックしたときにPage1の状態を復元するために必要な条件を保存する傾向があります。

以下の関数を使用してキャッシュをクリアしていますが、

protected override void OnInit(EventArgs e)
{
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    Response.Cache.SetNoStore();
    Response.Cache.SetExpires(DateTime.MinValue);
    base.OnInit(e);
}

Cookieに保存された条件に基づいてページをリロードできるようにします。しかし、問題は、ブラウザーの戻るボタンを押したのか、メニュー リンクを押して Page1 に移動したのかを識別する方法です。

アップデート:

このリンクにたどり着いたところ、ブラウザで戻るボタンのクリックを検出しましたが、うまくいきません

4

1 に答える 1

0

解決策ではなく、問題を説明してください。ページのキャッシュ可能性を none に設定しているため、ブラウザはページに対して無条件のリクエストを再発行するだけです。これは、そのページへのリンクをクリックするのと同じであり、検出できません。

誰かがページを再訪問したときにフォームデータを設定する方法がわからないという問題がある場合は、次のようなセッションを使用できます (疑似):

if (!String.IsNullOrEmpty(Session["Username"]))
{
    UsernameTextbox.Text = Session["Username"];
}

そのページへのリンクがクリックされたときにクリア フォームを表示する場合は、 のようなクエリ パラメータを設定できますreset=true。これにより、セッション データがクリアされ、空白のフォームが表示されます。

于 2012-12-19T11:12:31.503 に答える