我有一个调用渲染操作的主页:
<% Html.RenderAction("CategoryList", "Category", new { selectedCategoryId = Model.selectedCategoryId }); %>
,动作如下:
[ChildActionOnly]
[OutputCache(Duration = 10, VaryByParam = "none")]
public ActionResult CategoryList(int? selectedCategoryId)
{
CategoryList cl = CategoryManager.GetList();
if (selectedCategoryId.HasValue)
CategoryManager.SetSelectedCategory(cl, selectedCategoryId.Value);
return PartialView(cl);
}
但是当我运行SQL分析器时,我发现总是调用GetList()查询,这意味着该动作没有被缓存。
知道我做错了吗?
谢谢!
答案 0 :(得分:1)
这是一个子动作,意味着它只是最终HTML的一部分,无法缓存。用于缓存HTML结帐的片段this blog post。
答案 1 :(得分:0)
简单,使用OutputCacheAttribute。
[OutputCache(Duration=60, VaryByParam="None")]
public ActionResult CacheDemo() {
return View();
}
小心,Ragims