【发布时间】:2015-02-06 22:17:52
【问题描述】:
我在尝试下载 csv 文件时使用 HttpContext.Current.Response.End(); 时出错。
我搜索错误并获得解决方案。使用Handler避免Response.End();。
我的处理程序:
public class DownloadHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
string table = HttpContext.Current.Request.QueryString["table"].ToString();
string fileName = HttpContext.Current.Request.QueryString["fileName"].ToString();
table = table.Replace(">", ">");
table = table.Replace("<", "<");
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=" + fileName + "_" + DateTime.Now.ToString("M_dd_yyyy_H_M_s") + ".csv");
HttpContext.Current.Response.ContentType = "application/text";
HttpContext.Current.Response.Write(table);
}
public bool IsReusable
{
get
{
return false;
}
}
}
我像这样在按钮点击中调用这个处理程序。
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("Mypath/DownloadHandler.ashx?table=" + csv + "&fileName=User-Report");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
它调用处理程序。我没有错误但未下载 csv 文件?我无法弄清楚真正的问题在哪里。我可以在代码中遗漏一些东西吗?感谢您的帮助。
注意:csv 是一个来自另一个进程的字符串,不是真正的问题。
【问题讨论】:
-
收到回复后怎么办?
-
@dotnetstep 没有任何错误。只是停止一个页面。
标签: c# asp.net csv export-to-csv ihttphandler