我正在提交一个向后端发送请求的表单,C# 操作。后端生成一个pdf文件并发回浏览器下载。我如何捕捉这个事件?我只是想在从服务器发送 pdf 时向用户显示一条消息。我不能使用 ajax,因为我正在通过表单发送请求,并且我希望响应是附件。 public ActionResult ConvertHTMLtoPDF(string htmltoPDfFullUrl) { Byte[] res = null; using (MemoryStream ms = new MemoryStream()) { // not important logic } var stream = new MemoryStream(res); return new FileStreamResult(stream, "application/pdf") { FileDownloadName = "some name.pdf" }; }$(document).on('click', ".formSubmitDiv", function () { formSubmit();})function formSubmit() { $('#htmltoPDfFullUrl').val(fullHTMLLIVE); document.getElementById('beginConvertHTMLtoPDF').submit();}@using (Html.BeginForm("ConvertHTMLtoPDF", "Home", FormMethod.Post, new { id = "beginConvertHTMLtoPDF" })){ <input type="hidden" name="htmltoPDfFullUrl" id="htmltoPDfFullUrl" />}
1 回答

BIG阳
TA贡献1859条经验 获得超6个赞
我设法通过从服务器发送一个 cookie 并在客户端上不断检查这个 cookie 来解决这个问题。
这就是我发送cookie的方式。
Response.Cookies.Add(new HttpCookie(serverCookieResponse + "_CookiePDFResponse", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss:ff")));
这就是我检查cookie是否已收到的方式
function checkCookie() {
let cookieName = $('#serverCookieResponse').val() + "_CookiePDFResponse";
var cookieVal = $.cookie(cookieName);
if (cookieVal == null || cookieVal === 'undefined') {
setTimeout("checkCookie();", 1000);
}
else {
document.cookie = cookieName + '=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}
}
希望这对某人有帮助!
添加回答
举报
0/150
提交
取消