Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 页面发送请求且页面停止加载后的事件_Javascript_C#_Asp.net_Forms_Events - Fatal编程技术网

Javascript 页面发送请求且页面停止加载后的事件

Javascript 页面发送请求且页面停止加载后的事件,javascript,c#,asp.net,forms,events,Javascript,C#,Asp.net,Forms,Events,我正在提交一个表单,该表单正在向后端C#action发送请求。后端生成一个pdf文件,并将其发送回浏览器进行下载。我怎样才能赶上这次活动?我只想在服务器发送pdf时向用户显示一条消息。我不能使用ajax,因为我通过表单发送请求,并且我希望响应是一个附件 public ActionResult ConvertHTMLtoPDF(string htmltoPDfFullUrl) { Byte[] res = null;

我正在提交一个表单,该表单正在向后端C#action发送请求。后端生成一个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"
            };

        }
@使用(Html.BeginForm(“ConvertHTMLtoPDF”,“Home”,FormMethod.Post,new{id=“beginConvertHTMLtoPDF”}))
{
}

我通过从服务器发送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;';
    }
}

希望这对别人有帮助

请注意,
formSubmit
在您的代码中从未被调用,因此表单可能未被提交。当您单击“.formSubmitDiv”时,表单将被调用,它将执行调用表单的函数。请参阅上面的代码。同样,您的代码没有调用
formSubmit
函数,单击处理程序中只有对函数的引用,但没有调用。您没有看到这部分代码吗?document.getElementById('beginConvertHTMLtoPDF').submit();这确实提交了表单!但是包含该代码的函数永远不会执行。。。请看问题中的代码,这可能只是文章中的一个输入错误。。。
@using (Html.BeginForm("ConvertHTMLtoPDF", "Home", FormMethod.Post, new { id = "beginConvertHTMLtoPDF" }))
{
    <input type="hidden" name="htmltoPDfFullUrl" id="htmltoPDfFullUrl" />
}
Response.Cookies.Add(new HttpCookie(serverCookieResponse + "_CookiePDFResponse", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss:ff")));
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;';
    }
}