我有一个名为GenerateReport
的ActionResult的ASP.NET MVC应用程序。我正试图返回一个字节数组来保存Excel文件。以下是一些片段:
var contentType = "application/vnd.ms-excel";
var fileName = "Statistics.xlsx";
var fileBytes = package.GetAsByteArray();
return File(fileBytes, contentType, fileName);
当我被提示保存文件时,它有时(但并不总是)会询问我想用"生成报告"做什么。它将文件命名为与ActionResult相同的名称,并且没有为其指定文件类型。我会请求保存它,它会说保存失败。我将选择"重试",它将保存良好。然后,如果我将其重命名为.xlsx,则所有数据都在那里并且是正确的。我正在使用IE9和Chrome,但我没有注意到它在Chrome中发生。不幸的是,它需要在IE9中工作。
有人知道为什么它有时不获取我的内容类型和文件名吗?
检查内容编码的响应。这可能是与这里相同的问题PHP文件服务脚本:不可靠的下载?