在asp.net mvc中更新时删除索引视图中的输出缓存

时间:2011-02-04 14:19:00

标签: asp.net-mvc outputcache

我正在为某些Index视图使用输出缓存,因为它们包含大量数据。 我想保持每个用户的具体。因为视图可能因角色而异。

    [OutputCache(Duration = 3600, VaryByParam = "none", Location = OutputCacheLocation.Client)]
    public ActionResult Index(string schooljaarparam) {
        return View(_db.Lesplaatsens.Where(l => l.Schooljaar.Sch_Schooljaar == schooljaarparam).OrderBy(q => q.Lpl_Gemeente).ThenBy(q => q.Lpl_Instelling).ToList());
    }

现在有人创建新项目并返回索引视图。如何删除索引页面的缓存,以便新创建的项目将显示在列表中?

我认为这是一个常见的问题,但我还没有找到解决方案。

我猜你需要使用HttpResponse.RemoveOutputCacheItem() 但是我如何找到路线。我在哪里可以看到调试器中当前的缓存项?

2 个答案:

答案 0 :(得分:2)

您无法删除缓存的项目,因为它不在那里(即您没有在服务器上缓存它)。

当您说Location = OutputCacheLocation.Client时,浏览器将缓存响应,并且当用户请求相同页面时,甚至不会向您的服务器发送新请求,除非缓存过期或用户明确要求提供最新请求通过点击F5。

答案 1 :(得分:1)