【问题标题】:Response.Redirect not working after clientScript executionResponse.Redirect 在 clientScript 执行后不起作用
【发布时间】:2015-09-10 00:38:48
【问题描述】:

我已经使用 Clientscript 在 asp.net 页面上调用了一个 JavaScript 方法:

ClientScript.RegisterStartupScript(Page, Page.GetType(), "Registering", String.Format("getTest('{0}'{1}'{2}');", FileName, ",", taskStr), true);

在 JavaScript 中,我调用了一个 C# 静态 Web 方法,该方法在

中也可用
public partial class pagetest : System.Web.UI.Page
{
 [WebMethod]
 public static void test(){Response.Redirect("tst.aspx");}
}

当测试方法被 JavaScript 触发时,response.redirect 捕获一个错误。我试过HTTPCOntext.curent.responseHttp.cuttent.handler.reponse

【问题讨论】:

    标签: javascript c# asp.net response


    【解决方案1】:

    这是意料之中的。

    注册客户端脚本会将脚本放在页面上,以便在页面在浏览器中呈现时执行。

    重定向会导致 ASP.NET 放弃当前正在呈现的页面(包括任何已注册的客户端脚本)——它永远不会发送到客户端。相反,IIS 将向浏览器发送重定向标头。理论上,您可以在重定向标头之后包含页面内容(您必须编写一些非常奇怪的代码),但大多数浏览器会忽略它。

    如果您希望客户端脚本执行,您必须将其添加到作为重定向目标的页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-09
      • 1970-01-01
      • 2013-01-27
      • 2015-06-25
      • 2012-08-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多