ASP.NET MVC:下载excel文件

时间:2011-09-12 16:04:24

标签: asp.net-mvc asp.net-mvc-3 excel

我在C#action方法中下载一个excel文件,重新编译了FileResult,如下所示:

return File(bindata, "application/octet-stream", "mytestfile.xls");

当我手动导航到与上述方法对应的URL时,我将获得该文件的渲染表示。该文件不会使用“另存为 - 对话框”下载。

有没有办法通过Save As -dialog强制下载?

-pom -

3 个答案:

答案 0 :(得分:8)

通常,当您为File方法指定文件名时,它会自动附加Content-Disposition标题,以便始终显示“另存为”对话框。当你说你的代码不起作用时,我有点惊讶。您也可以尝试手动设置此标题:

Response.AppendHeader("Content-Disposition", "attachment; filename=mytestfile.xls");

答案 1 :(得分:5)

由于您要返回的媒体类型,我感觉您正在获得此行为。

尝试将媒体类型更改为application / vnd.ms-excel,如下所示:

return File(bindata, "application/vnd.ms-excel", "mytestfile.xls");

答案 2 :(得分:4)

你可以试试这个:

return new FileContentResult(bindata, "application/vnd.ms-excel")
            {
                FileDownloadName = "mytestfile.xls")
            };

希望这有帮助。