【问题标题】:What is a valid use for Response.Redirect("SomeURL", false)?Response.Redirect("SomeURL", false) 的有效用途是什么?
【发布时间】:2011-01-30 15:09:07
【问题描述】:

在 ASP.NET 中,我经常使用 Response.Redirect 将最终用户重定向到我系统上的另一个页面。我总是将第二个参数设置为 true 以立即结束响应。

在我的一生中,我想不出任何人会将该参数设置为 false 的原因。当最终用户的浏览器将立即被重定向到不同的页面时,继续生成页面有什么意义?

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    Response.Redirect 并不意味着页面生命周期在服务器端已经结束,它只是向客户端发送一个标头

    也许您想先重定向用户,然后将他上传的大量数据保存到数据库中?

    HttpServerUtility.Transfer 顺便说一句确实终止了页面生命周期,但它不发送标头,它只是提供不同的页面。

    【讨论】:

    • 注意:当您使用 Transfer 时,URL 将保持不变
    • 我会接受您的正确回答。但是,我将您的回复读作“理论上,您可以以这种方式使用它”,而不是“过去,我以这种方式使用它”。我想知道的是,您是否曾经使用过第二个参数为 false 的 response.redirect 方法?
    • 其实我一直都设置为false。我更喜欢使用 Response.Redirect("yahoo.com", false);而不是 Response.Redirect("yahoo.com");
    【解决方案2】:
    Response.Redirect(..., true);
    

    客户端将收到新页面的重定向,处理将因线程中止而停止

    Response.Redirect(..., false);
    

    客户端将被发送新页面的重定向,当前页面将被允许继续处理,也许需要做一些清理工作或其他事情

    在任何一种情况下,客户端都不会看到当前页面的结果

    【讨论】:

      【解决方案3】:

      为什么不呢。在页面的进程被杀死之前,您可能需要在此页面上完成一些事情。例如,写入文件然后对其进行整理。或者在数据库中进行一些更改,并正确结束连接。

      【讨论】:

        【解决方案4】:

        Response.Rediect("any page like Default.aspx");

        当控件到达此语句时,我们的页面将跳转到括号中指定的页面。该页面可能是 .aspx、.asp.htm 等...

        【讨论】:

        • 没有必要重复其他答案中已经解释过的事情。
        猜你喜欢
        • 2010-11-02
        • 2017-05-19
        • 2016-09-30
        • 2012-06-03
        • 2016-03-02
        • 1970-01-01
        • 2010-09-27
        • 2011-12-17
        • 2010-11-21
        相关资源
        最近更新 更多