IE9缓存文本文件

本文关键字:文件 文本 缓存 IE9 | 更新日期: 2023-09-27 17:51:16

我有一个ASP。. NET web应用程序,创建一个文本文件报告,然后重定向到该文件。

Response.Redirect(strFileName);

问题似乎是IE9在缓存方面做了一些不同的事情。如果我生成两个报告,IE9总是显示生成的第一个。我必须按CTRL+F5来查看更新的文件。此问题在其他浏览器上不会出现。

我已经尝试添加命令来更改缓存,但无济于事。

Response.Cache.SetNoStore();
Response.Cache.SetCacheability(HttpCacheability.NoCache);

我想保留生成用于记录目的的文本文件的功能。一种解决方案是将文本文件中的所有信息转储到页面上,并避免Response.Redirect,但这看起来更像是一种黑客攻击,而不是真正的修复。有没有办法强制IE重新加载文本文件?

IE9缓存文本文件

你可以使用version.

string strFileName = GetReportUrl();
string version = GetCurrentReportVersion(); // - or to use DateTime.Now.ToString();
string url = string.Format("{0}?v={1}", strFileName, version);
Response.Redirect(url);

在这种情况下,浏览器将始终使用上次报告版本。

@Oleksandr的答案应该有效并且易于实现。

另一种选择是重定向到另一个包含您提到的Response.Cache设置的。net页面。您可以将文本文件的内容写入这个新页面。

您的方法的问题是,您的Response.Cache设置适用于您所在的页面,而不是您重定向到的页面。