C# ASP.NET静态WebMethod下载文件
我正在尝试使用ASP.NET静态WebMethod生成和下载Excel文件,该文件是通过jQuery中的Ajax调用的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
[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>