使用ASP.NET MVC在Internet Explorer中"无法下载文件"

Mat*_*nde 6 asp.net-mvc internet-explorer filecontentresult

所以我FileContentResult从这样的动作返回一个:

return File(pck.GetAsByteArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "MyExcelFile.xlsx");
Run Code Online (Sandbox Code Playgroud)

在IE中单击"打开"(我使用的是IE9,版本9.0.8112.16421)时,会显示"无法下载文件",并向用户显示"重试"按钮.如果他们单击"重试",则可以正常工作.如果他们单击"保存",则工作正常.在Firefox中,它工作正常.

如何在第一次单击"打开"时允许用户打开文件?

Tod*_*ang 2

我能够通过修改 URL 来“欺骗”IE 做正确的事情。这有点老套,但这是细节。HTH。

作为一名优秀的 MVC 编码人员,我使用 Url.Action() 在我的视图中生成到控制器操作的正确链接。结果是“/Subscription/DownloadArchive”,我也遇到了同样的问题。(我正在流式传输 ZIP 文件,但它似乎与您的 CSV 没有什么不同。)刚刚读完您的帖子后,我一时兴起,将 URL 硬编码为“/Subscription/DownloadArchive/Archive.zip”。我忽略了代码中的“Archive.zip”,但这实际上是我从控制器操作返回的文件名。

急!