Ответ 1
Сначала вы можете создать файл из обработчика .ashx
Скажем, у вас есть файл для загрузки в download.ashx
, и у вас есть некоторые параметры для перехода от вашего javascript, например download.ashx?p1=8827&p2=8831
, чтобы узнать, что вы собираетесь создавать.
Затем на вашем javascript вы можете сделать переадресацию как
window.location = "download.ashx?p1=8827&p2=8831";
или альтернативу вы можете использовать window.open
для того, чтобы подумать
window.open("download.ashx?p1=8827&p2=8831");
и ваш файл начнет загрузку.
Просто убедитесь, что вы установили заголовок вложения и правильный тип содержимого на вашем дескрипторе, например:
HttpContext.Current.Response.ContentType = "application/octet-stream";
HttpContext.Current.Response.AddHeader("Content-Disposition",
"attachment; filename=" + SaveAsThisFileName);
Простой и понятный, проверенный и работающий.
Также вы можете подумать над этим ответом: Как обрабатывать ошибки.