Asp.net mvc 在IE中下载文件不会';启用缓存时无法工作
我正在尝试修复从ASP.NET MVC应用程序下载的文件在IE中不起作用的问题 控制器操作如下所示:Asp.net mvc 在IE中下载文件不会';启用缓存时无法工作,asp.net-mvc,internet-explorer,download,outputcache,Asp.net Mvc,Internet Explorer,Download,Outputcache,我正在尝试修复从ASP.NET MVC应用程序下载的文件在IE中不起作用的问题 控制器操作如下所示: [HttpGet] [OutputCache(Duration = 0, NoStore = true, VaryByParam = "*")] public FileResult GetTemplate(int id) { var data = GetData(id); return File(Encoding.ASCII.Ge
[HttpGet]
[OutputCache(Duration = 0, NoStore = true, VaryByParam = "*")]
public FileResult GetTemplate(int id)
{
var data = GetData(id);
return File(Encoding.ASCII.GetBytes(data), MimeType.Csv.Type, "template.csv");
}
下载是使用javascript中的window.open()
调用启动的。它在Firefox中运行良好,但在IE中不起作用。
如果我删除OutputCache
属性,那么它在IE中可以正常工作
为什么OutputCache行会中断IE中的下载?有两种可能性:
窗口。只打开一个简单的下载链接
应用程序/octet流
:
return File(
Encoding.ASCII.GetBytes(data),
"application/octet-stream",
"template.csv"
);
要回答您的最后一个问题,您需要一个解释,如下所示:
这实际上是IE中的一个错误。我将
OutputCacheAttribute
行更改为[OutputCache(Duration=1200,Location=OutputCacheLocation.Client,VaryByParam=“*”,NoStore=false)]
。虽然我的问题仍然存在,但我不是在寻找解决方案或解决办法。我正在试图理解为什么它在IE中不起作用,并且正在寻找一个解释。