我有一个通用处理程序(.ashx),用于下载excel文件。 当我尝试使用以下代码调用它时:
HttpWebRequest request = WebRequest.Create("ExcelDownload.ashx?id=123") as HttpWebRequest;
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
文件未下载。但是,我可以在发出请求时调试处理程序代码。
但是当在锚标签中使用处理程序时,我可以下载该文件。
<a href="ExcelDownload.ashx?id=123">Excel Download</a>
知道为什么第一个选项不起作用?
其他评论: 在处理程序中,我使用下面的代码,它与锚标记一起使用。 我没有对请求返回的响应对象做任何事情。
context.Response.Clear();
context.Response.ClearContent();
context.Response.ClearHeaders();
context.Response.Buffer = true;
byte[] buffer = memoryStream.ToArray();
context.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
context.Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}", faWorkbookFileName));
context.Response.BinaryWrite(buffer);
context.Response.End();