JavaScript警告框未触发。

3
我有一个新页面,其中包含以下内容: Response.Redirect可以正常工作,但我在此之前没有弹出窗口... 有什么想法吗?
   protected void Page_Load(object sender, EventArgs e)
{
    if (Request.QueryString["timeout"] != null && Request.QueryString["timeout"].ToString().Equals("yes"))
    {
        Response.Write("<script>alert('Your Session has Timedout due to Inactivity');</script>");
        Response.Redirect("Default.aspx");
    }
}
2个回答

9

Response.Redirect调用不会将代码返回给用户。 它立即将用户重定向到下一页。来自MSDN 关于Response.Redirect的解释:“任何响应体内容,例如显示在原始URL所指示的页面上的HTML文本或Response.Write文本都将被忽略。”


谢谢!我能否在单击“确定”按钮时进行重定向? - kralco626
当然,你可以像 @Mario Menger 建议的那样去做。 - sgriffinusa

7
< p > Response.Redirect 会重定向浏览器,而您的 JavaScript 不会被执行。

尝试改为使用 JavaScript 进行重定向:

 protected void Page_Load(object sender, EventArgs e) 
 { 
     if (Request.QueryString["timeout"] != null && Request.QueryString["timeout"].ToString().Equals("yes")) 
     { 
          Response.Write("<script>" +
               "alert('Your Session has Timedout due to Inactivity');" +
               "location.href='Default.aspx';" + 
               "</script>"); 
     } 
 } 

这解决了这个问题。不幸的是,当我重定向到Default.aspx时,Default.aspx仍然认为它是一个超时并重新定向回EndSession.aspx。但我会为此开一个新话题。你完美地回答了这个问题。 - kralco626

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接