【发布时间】:2012-03-07 22:03:48
【问题描述】:
所以我从这样的操作中返回FileContentResult:
return File(pck.GetAsByteArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "MyExcelFile.xlsx");
在 IE(我使用的是 IE9,版本 9.0.8112.16421)中单击“打开”时,它会显示“无法下载文件”,并且会向用户显示“重试”按钮。如果他们单击重试,它工作正常。如果他们点击保存,它工作正常。在 Firefox 中,它运行良好。
如何让用户在第一次点击打开时打开文件?
【问题讨论】:
-
安装 fiddler 并在您发出第一个请求时运行它。您将能够检查从服务器返回的响应。也许这会对这个问题有所启发。 fiddler2.com/fiddler2
-
@MattGrande 你在这方面有什么收获吗?我也有类似的问题,但使用常规的 ASP.NET(不涉及 MVC)和 CSV 内容类型(不仅仅是 XSL/XSLX)。我发现 various sites 带有“解决方案”,但它们似乎都不是很有帮助...相同版本的 IE
-
@LordScree - 不幸的是没有。有人告诉我,它暂时运行得很好,稍后再回来。发生这种情况的几率是多少?哈哈哈。
-
@MattGrande 我也得到了有趣的结果,在文件下载失败后,如果你按“打开”,它会打开 ASP.NET 页面的实际呈现的 HTML 源代码(例如 等),而不是 CSV 文件,但如果您按“保存”然后“打开”,它会正确保存 CSV 并打开它。我把这种行为归结为 AJAX,但我认为......仍然很烦人。
-
聚会迟到了,但是有没有人能用这种方法解决它? support.microsoft.com/en-us/kb/2549423
标签: asp.net-mvc internet-explorer filecontentresult