2009-12-30 34 views
2

我有一个显示项目列表的视图,当您点击其中一个项目时,它会将您带到项目页面。我还在该数据库的数据库中存储了“已查看”标志。如何防止缓存ASP.NET MVC中的一些视图?

现在,当用户点击回来时,由于“已阅读”标志的更改,该项目的样式应该不同。但是,每次我点击后,就像在点击该项目之前一样,我必须单击刷新才能看到页面的实际状态。

如何防止此页面被缓存,因此当用户点击回来时,他们将看到本网站的最新版本,并附有新的样式?在你的控制器动作

回答

2

调用此:

Response.Cache.SetCacheability(HttpCacheability.NoCache) 

这将防止浏览器缓存的页面。

3

将控制器操作标记为使用OutputCacheAttribute生成列表,并将缓存位置设置为none,以防止将该页面缓存在客户端上。这应该会导致客户端再次请求该页面。但是,如果用户正在使用后退按钮,我认为该页面由浏览器提供,无需重新加载,无论缓存如何。至少在FF中,我没有看到它使用Firebug再次请求页面。

[OutputCache(Location = OutputCacheLocation.None)] 
+0

如果它没有被浏览器缓存,它如何在不重新加载的情况下再次提供它? –

+0

我原本以为它会重新加载,但这不是我在FF中看到的。 – tvanfosson