页面不会在ASP.NET C中解除自身缓存#

时间:2010-04-01 22:48:48

标签: c# internet-explorer-7 refresh renderpartial

我有时会发现我需要按CTRL + REFRESH BUTTON(或简称REFRESH BUTTON)才能更新页面。 我认为这可能是使用AJAX更新面板和事情的问题,但它也发生在没有AJAX部分渲染的页面上。 我还删除了if(!isPostBack),但仍然需要刷新页面以便更新内容。

是否与缓存有关?

有没有人知道修复此问题? 我相信它只发生在IE 7(我正在使用)。我尝试使用与Chrome相同的功能,它按预期工作。

编辑:不幸的是,它并不像设置缓存标头到0或IE在页面加载时总是重新访问最新页面那么容易。我已经完成了这些并且发生了同样的问题。

例如,在我网站的某个部分,您可以更改个人资料图片。如果我选择删除配置文件图片(然后应设置为默认图片),它只删除图片(但不显示默认图片)。页面再次加载,但它仍然引用我删除的图片(所以我得到了图片的X)。我必须转到另一个页面,然后返回到个人资料页面,以便查看默认图片。 CTRL + REFRESH也有效。

请注意,此特定问题会在所有浏览器下发生(包括Chrome)。

如果有帮助,我正在使用母版页中的内容页面。

3 个答案:

答案 0 :(得分:1)

更改浏览器缓存设置将在本地解决问题,但为了解决一般情况,请将标题“Expires:0”添加到出站页面,这将阻止浏览器缓存它。

要在C#中执行此操作,请将此代码添加到页面加载事件:

Response.AddHeader("Expires", "0");

答案 1 :(得分:0)

Ctrl + refresh强制IE从服务器重新加载页面,而不是使用本地缓存版本。首先,检查浏览器的设置:设置 - 常规 - 浏览历史记录。 “检查存储页面的较新版本”应设置为“自动”。然后,检查您是否在页面中添加任何“过期”标题。

答案 2 :(得分:0)

您还可以考虑在响应对象上设置缓存策略,或者每次都将实体标记设置为不同的...

http://msdn.microsoft.com/en-us/library/system.web.httpcachepolicy.aspx