既存の MVC2 プロジェクトがあり、最初にMVC3 に到達するためのこれらの手順に従って MVC4 にアップグレードし、次に MVC4 に到達するためのこれらの手順に従います。
出力キャッシュは、MVC2 プロジェクトで長い間正常に機能していましたが、MVC4 バージョン以降は機能しません。
キャッシングをテストするための簡単なコントローラーを追加しました。
public class TestController : Controller
{
[OutputCache(Duration = 600, VaryByParam = "*")]
public ActionResult CacheTest()
{
return Content(DateTime.Now.ToLongTimeString());
}
}
このページを更新するたびに、ブラウザに出力される時間が変わります。
この同じソリューションで新しい MVC3 プロジェクトを作成し、MVC4 にアップグレードしてから、この同じコードをコピーすると、期待どおりに機能します。
したがって、既存のコードまたは構成のどこかに、出力キャッシュを壊している何かがあるに違いありません。
また、何かが問題を引き起こしていると考えて、web.configファイルから大量のものを削除しようとしました-運が悪い.
これを修正またはデバッグする方法に関する提案はありますか?
アップデート:
上記の CacheTest アクションを任意のビューでレンダリングすると、キャッシュされた結果が表示されます。つまり、更新のたびに日付は変わりません。
<% Html.RenderAction("CacheTest", "Test"); %>
なぜそれが機能するのに、ブラウザからのアクション URL がキャッシュされないのですか?