ASP.NET MVC:下载一个Excel文件
我正在C#的动作方法下载一个Excel文件重新生成一个FileResult,像这样:
return File(bindata, "application/octet-stream", "mytestfile.xls");
当我手动导航到与上述方法相对应的URL时,我得到了该文件的渲染表示。 该文件不会用另存为-dialog下载。
有没有办法强制下载通过另存为-dialog?
-pom-
我有一种感觉,你正在得到这种行为,因为你正在返回的媒体types。
尝试将媒体types更改为application / vnd.ms-excel,如下所示:
return File(bindata, "application/vnd.ms-excel", "mytestfile.xls");
通常,当您为File
方法指定一个文件名时,它会自动附加一个Content-Disposition
标题,这样Save-As对话框将始终显示。 所以当你说你的代码不起作用时,我感到有些惊讶。 您也可以尝试手动设置此标题:
Response.AppendHeader("Content-Disposition", "attachment; filename=mytestfile.xls");
你可以试试这个:
return new FileContentResult(bindata, "application/vnd.ms-excel") { FileDownloadName = "mytestfile.xls") };
希望这可以帮助。