我試圖使用ASP.NET靜態WebMethod來生成和下載Excel文件,該文件通過Ajax從jQuery調用。ASP.NET靜態WebMethod下載文件
[WebMethod]
public static void ExportToExcel(List<ResultGroupItem> searchResult)
{
HttpResponse response = HttpContext.Current.Response;
ExcelExporter excelExporter = new ExcelExporter();
excelExporter.ExportToExcel(searchResult, response);
}
在我的ExportToExcel方法中,我生成xls文件,然後添加http頭文件來下載文件。
// excelFileBytes is a byte array holding the data to be written
if (excelFileBytes != null)
{
response.Clear();
response.ContentType = "application/octet-stream";
response.AddHeader("content-disposition", string.Format("attachment; filename=\"{0}\"", fileName));
response.Flush();
response.BinaryWrite(excelFileBytes);
response.Flush();
response.End();
}
我知道我的代碼正在工作,但是從Ajax調用它並沒有啓動下載。這裏是(在Mozilla Firefox的螢火)的反應我得到:
如何從阿賈克斯開始文件下載?
有問題嗎? – cdsln
是的,這看起來像一些XML文件(希望很明顯)的ZIP壓縮文件(領先的'PK'字符),這是一個現代化的Office XML文件。所以,服務器代碼似乎很好。 –
但是,再次閱讀您的問題,我意識到您的客戶端代碼可能註定要失敗。如果你搜索'ajax trigger download',你應該找到很多結果來解釋爲什麼它不起作用。 –