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") }; 

希望这可以帮助。