2011-02-04 42 views
3

我对某些索引视图使用输出缓存,因为它们包含大量数据。 我想保持每个用户的特定。因为视图可以根据角色而有所不同。删除输出缓存在更新在asp.net上的索引视图mvc

[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() 但我该如何找到路线。我在哪里可以看到调试器中当前的缓存项目?

+0

你把这个放在你的控制器上吗? – Aliostad 2011-02-04 14:23:16

+0

不,这是在我的索引行动。 – Stefanvds 2011-02-04 14:25:47

+0

Index action =>那么在你的控制器上呢? – Aliostad 2011-02-04 14:32:08

回答

2

,因为它不存在,则不能删除缓存项(即你是不是缓存在服务器上)。

当你说Location = OutputCacheLocation.Client时,浏览器会缓存响应,甚至在用户请求同一页面时甚至不会向你的服务器发送新的请求,除非缓存过期或者用户特意通过点击来请求最新版本F5。