0

jqueryを使用したasp.netを使用したMVC4アプリがあり、プロジェクトは最初にすべてのページをロードし、ajaxを介してコンテンツを更新します。

アプリからログオフした後、すべてのページがキャッシュに残ります。次回のログイン時に、新しいデータと古いデータが混在したり、一部のデータが繰り返されたりする原因となります。

ログオフ時にすべてのキャッシュを削除するにはどうすればよいですか?

4

1 に答える 1

1

私はブラウザがページをキャッシュしていると仮定しています。この場合、ログオフ時にブラウザからキャッシュを単純に削除することはできません。

代わりに、どのページもキャッシュしないようにブラウザに指示する必要があります。

OnResultExecutingシンプルなアクション フィルターでこれを行い、メソッドをオーバーライドできます。

    public override void OnResultExecuting(ResultExecutingContext filterContext)
    {
        filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
        filterContext.HttpContext.Response.Cache.SetValidUntilExpires(false);
        filterContext.HttpContext.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
        filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);

        base.OnResultExecuting(filterContext);
    }
于 2012-12-13T21:03:21.527 に答える