Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET静态WebMethod下载文件_C#_Asp.net - Fatal编程技术网

C# ASP.NET静态WebMethod下载文件

C# ASP.NET静态WebMethod下载文件,c#,asp.net,C#,Asp.net,我正在尝试使用ASP.NET静态WebMethod生成和下载Excel文件,该文件是通过jQuery中的Ajax调用的 [WebMethod] public static void ExportToExcel(List<ResultGroupItem> searchResult) { HttpResponse response = HttpContext.Current.Response; ExcelExporter excelExporter = new Exce

我正在尝试使用ASP.NET静态WebMethod生成和下载Excel文件,该文件是通过jQuery中的Ajax调用的

[WebMethod]
public static void ExportToExcel(List<ResultGroupItem> searchResult)
{
    HttpResponse response = HttpContext.Current.Response;

    ExcelExporter excelExporter = new ExcelExporter();
    excelExporter.ExportToExcel(searchResult, response);
}
我知道我的代码正在工作,但是从Ajax调用它并没有启动下载。以下是我得到的回应(由Mozilla Firefox中的FireBug提供):


如何从Ajax启动文件下载?

有点不清楚,您想做什么,但如果我没弄错的话,您希望启动文件下载,而不需要浏览器打开新选项卡等

您应该能够使用

<a href="/link/to/file" download>anchor text</a>


由于您的内容配置:附件标题,可能不需要“下载”属性。

如果您使用jquery,请在客户端尝试类似的操作


“$”(“表单操作=”+downloadUrl+“'method='post'>/form>”).appendTo(document.body.submit()”

有问题吗?是的,这看起来像是一些XML文件的ZIP存档(前导
PK
字符)(希望很明显),这就是现代Office XML文件。所以,服务器端代码看起来不错。但是,再次阅读您的问题,我意识到您的客户端代码可能会失败。如果搜索
ajax trigger download
,您会发现大量结果,解释它为什么不起作用。由于输入限制,表单标记的格式不正确。您好,Jimmy,excel文件是使用JavaScript提供的列表动态生成的。硬盘上不存在通过指定路径下载的URL。您可能需要将with method=“post”和操作设置为与ajax调用中使用的URL相同。然后有一个按钮或achor来提交表单。我会试试看,谢谢
<a href="/link/to/file" download>anchor text</a>