2

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

Response.Redirect(strFileName);

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

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

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

我想保留为记录目的生成文本文件的功能。一种解决方案是将文本文件中的所有信息转储到页面上并避免Response.Redirect. 有没有办法强制IE重新加载文本文件?

4

2 回答 2

3

你可以使用类似版本的东西。

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

Response.Redirect(url);

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

于 2013-01-11T14:02:27.867 回答
0

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

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

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

于 2013-01-11T14:13:29.360 回答