首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Response.Redirect()在Response.Flush()之后;

Response.Redirect()在Response.Flush()之后;
EN

Stack Overflow用户
提问于 2018-05-14 13:01:56
回答 1查看 1.9K关注 0票数 0

在我的代码中,我想在下载pdf后重定向到一个thankyou.html页面,这样我就可以用这种方法编写代码

代码语言:javascript
复制
protected void download()
    {
        try
        {
            string path = Server.MapPath("pdf/myDoc.pdf");   
            System.IO.FileInfo file = new System.IO.FileInfo(path);
            if (file.Exists)
            {
                string strURL = path;
                WebClient req = new WebClient();

                Response.Clear();
                Response.ClearContent();
                Response.ClearHeaders();
                Response.Buffer = true;
                Response.AddHeader("Content-Disposition", "attachment;filename=\"myDoc.pdf\"");
                byte[] data = req.DownloadData(path);
                Response.BinaryWrite(data);
                Response.Flush();

                Response.Redirect("thankyou.html");
            }                
            else
            {
                Response.Write("This file does not exist.");
            }
        }
        catch (Exception ex)
        {
            ScriptManager.RegisterStartupScript(this, GetType(), "showalert", "alert('" + ex.Message.ToString() + "');", true);
        }
    }

但它显示了错误无法计算表达式,因为代码经过优化,或者本机框架位于调用堆栈的顶部,并且当Response.Redirect("thankyou.html");外部显示错误无法在发送HTTP头后重定向。能指导我如何重定向到另一个页面吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-14 13:04:11

发送文件和重定向到页面是两个不同的HTTP响应。你不能把它们结合起来。

通常情况下,下载是由您返回的页面触发的,所以在显示感谢消息时,有一些javascript来处理下载。如果愿意,可以使用以下javascript:Download File Using Javascript/jQuery

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50331014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档