我在C#action方法中下载一个excel文件,重新编译了FileResult,如下所示:
return File(bindata, "application/octet-stream", "mytestfile.xls");
当我手动导航到与上述方法对应的URL时,我将获得该文件的渲染表示。该文件不会使用“另存为 - 对话框”下载。
有没有办法通过Save As -dialog强制下载?
-pom -
答案 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")
};
希望这有帮助。