2010-08-06 55 views
3

我有以下新的一页: 的Response.Redirect的工作,但我没有得到手之前弹出...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');</script>"); 
     Response.Redirect("Default.aspx"); 
    } 
} 

回答

7

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>"); 
    } 
} 
+0

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

9

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

+0

谢谢!任何机会,我可以重新点击确定按钮点击? – kralco626 2010-08-06 15:03:52

+0

当然,你可以像@Mario Menger所建议的那样做。 – sgriffinusa 2010-08-06 15:09:58