如何防止ASP.NET MVC中的某些视图被缓存?

时间:2009-12-30 22:36:38

标签: c# .net asp.net-mvc caching

我有一个显示项目列表的视图,当您点击其中一个项目时,它会转到项目页面。我还在数据库中为该项目存储了“Viewed”标志。

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

如何阻止此页面被缓存,以便当用户点击回来时,他们会看到此网站的最新版本,并完成新的样式?

2 个答案:

答案 0 :(得分:3)

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

[OutputCache( Location = OutputCacheLocation.None )]

答案 1 :(得分:2)

在您的控制器操作中调用此方法:

Response.Cache.SetCacheability(HttpCacheability.NoCache)

这会阻止浏览器缓存页面。

相关问题