我正在尝试修复从ASP.NET MVC应用程序中无法在IE中运行的文件下载问题。
控制器操作如下所示:
[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中的下载?
答案 0 :(得分:1)
答案 1 :(得分:0)
两种可能性:
window.open
,而应使用简单的下载链接使用application/octet-stream
:
return File(
Encoding.ASCII.GetBytes(data),
"application/octet-stream",
"template.csv"
);