从asp.net代码后面调用Generic Handler .ashx

时间:2015-01-23 18:01:10

标签: asp.net generic-handler

我有一个通用处理程序(.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();

0 个答案:

没有答案