У меня ошибка при использовании HttpContext.Current.Response.End();
при попытке загрузить csv файл. Я ищу ошибку и получаю решение. Используйте Обработчик, чтобы избежать Response.End();
.Загрузить файл csv через HTTP-обработчик
Мой обработчик:
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
@dotnetstep ничего нет ошибки. просто остановите страницу. –