0

ページにいくつかのasp.Netリストボックスがあります。コードがコンテンツを読み取って SQL 文字列を作成したら、ページにリダイレクトして結果を表示します。ページを離れる前にリストボックスをクリアして、ユーザーが戻って別の検索をしたい場合に備えてリストボックスを整理したいと思います。

次のようにリスト ボックスをクリアできます。

    'Clear all selections
    lstDescription.SelectedIndex = -1
    lstManufacturer.SelectedIndex = -1
    lstModelNumber.SelectedIndex = -1
    lstIssuedTo.SelectedIndex = -1
    lstLocation.SelectedIndex = -1

うまくいきますが、下に次の行を追加すると:

    Response.Redirect("grid.aspx")

ボックスがクリアされません。[戻る] ボタンを押してもボックスが選択されたままです。asp.netがこのように動作する理由を誰か教えてもらえますか? 回避策の提案は大歓迎です。

4

2 に答える 2

0

特に ASP.NET の動作ではなく、ブラウザーの動作が発生しています。リダイレクト元のページと、その後 [戻る] ボタンを介して戻るページは、ブラウザーによってキャッシュから提供されているため、その設定が保持されます。

これを行わないようにブラウザに指示する必要があります。このコードを Page_Load と IE に追加すると、FireFox はキャッシュからのサービスを停止します。

protected void Page_Load(object sender, EventArgs e)
{
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    ...

すべてのブラウザーはキャッシュの実装方法が異なりますが、ルールとイディオムに従ってレスポンスで返信するものをすべて解釈するため、これは制御できません。たとえば、上記のスニペットは IE と FireFox では機能しますが、Chrome では機能しません。

于 2013-05-09T02:10:28.357 に答える