2

Visual Studio ASP.NET MVC4 プロジェクトでキャッシュを有効にしています。

キャッシュを管理するコードの部分は次のとおりです。

filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(1));
filterContext.HttpContext.Response.Cache.SetValidUntilExpires(true);
filterContext.HttpContext.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.Public);

テストのために、アクションの編集ページにブレークポイントを配置しました。アプリケーションを実行して特定のページ (編集ページ) に移動すると、ブレークポイントに到達しないため、アクション ページがキャッシュされていることが簡単にわかります。次に、CTRL+F5 でキャッシュをクリアし、同じ編集ページに移動します。アクションの編集ページでブレークポイントに到達することを期待していますが、そうではありません。アクションの編集ページにアクセスしたことはありません。

ここに画像の説明を入力

ここに画像の説明を入力

理由はありますか?

ありがとう。

4

1 に答える 1

0

代わりに OutputCache 属性を使用してみましたか? 制御が簡単で(構成を介して実行)、応答への書き込みを使用するのが簡単です。

基本的な使用例:

[OutputCache(Duration=10, VaryByParam="none")]
public ActionResult Index()
{
    return View();
}

または、web.config で独自の名前付き設定を作成できます。構成例:

<caching>
    <outputCacheSettings>
        <outputCacheProfiles>
            <add name="Cache1Hour" duration="3600" varyByParam="none"/>
        </outputCacheProfiles>
    </outputCacheSettings>
</caching>

...そして次のように使用されます:

Example usage:

[OutputCache(CacheProfile="Cache1Hour")]
public ActionResult Index()
{
    return View();
}

ここからコピーされた例

于 2012-12-31T13:34:06.917 に答える