Javascript ASP.NET MVC:导出CSV文件,右键单击“另存链接为”不适用于FF和Safari(始终是函数名和html扩展名)?

Javascript ASP.NET MVC:导出CSV文件,右键单击“另存链接为”不适用于FF和Safari(始终是函数名和html扩展名)?,javascript,jquery,asp.net,asp.net-mvc,Javascript,Jquery,Asp.net,Asp.net Mvc,视图控制器: public async Task<FileContentResult> ExportAllCSV() { var stream = await _apiController.GetExportCSV((User as WebUser).AccountID); return File(stream.ToArray(), "text/csv; charset=utf-8", "Record_" + DateTime.Now.ToString("yyyyMM

视图控制器:

public async Task<FileContentResult> ExportAllCSV()
{
    var stream = await _apiController.GetExportCSV((User as WebUser).AccountID);
    return File(stream.ToArray(), "text/csv; charset=utf-8", "Record_" + DateTime.Now.ToString("yyyyMMdd") + ".csv");
}
public异步任务ExportAllCSV()
{
var stream=await _apiController.GetExportCSV((用户作为WebUser.AccountID));
返回文件(stream.ToArray(),“text/csv;charset=utf-8”,“Record_quot+DateTime.Now.ToString”(“yyyyMMdd”)+“.csv”);
}
视图:



当我在大多数web浏览器中单击鼠标左键时,文件将正确导出。对于右键单击,请在firefox上将链接另存为。它会弹出一个窗口来定位文件。在弹出窗口中显示文件名:ExportAllCSV.htm和另存为类型Firefox html文档(.htm、.html、*.htm)

这样做是因为当您右键单击“将链接另存为”时,实际上是在保存http链接,而不是文件。该文件以流的形式从API控制器呈现。如果您的链接是一个
文件://
链接和一个http
链接,那么您的右键单击将起作用,但这也会破坏按需将文件作为流提供服务的目的。这是因为当您右键单击“另存链接为”时,实际上是在保存http链接,而不是文件。该文件以流的形式从API控制器呈现。如果您的链接是
文件://
链接和http
a
链接,那么您的右键单击将起作用,但这也会破坏将文件作为流按需提供服务的目的。
<a id="export-record" class="btn-default" href="Record/ExportAllCSV">Export</a>