为什么这个页面重定向不在IE中工作?

时间:2010-08-10 12:34:02

标签: asp.net internet-explorer response.redirect

我在asp.net页面中检查会话变量并重定向到我的默认页面。

 if (Session["OrgId"] != null)
   {
       // some logic
   }
 else
   {
             Response.Redirect("../Default.aspx?Sid=1", false);
   }

并在我的default.aspx页面中完成了这个,

Int64 id = GetId(Request.RawUrl.ToString());
  if (id == 1)
 {
    // I ll show "Session Expired"
 }

public Int64 GetId(string url)
{
    Int64 id = 0;
    if (url.Contains("="))
    {
        if (url.Length > url.Substring(url.LastIndexOf("=")).Length)
        {
            id = Convert.ToInt64(url.Substring(url.LastIndexOf("=") + 1));
        }
    }
    return id;
}

这适用于googlechrome,firefox但不适用于IE。 “行动中止”例外。

3 个答案:

答案 0 :(得分:3)

尝试更改

 Response.Redirect("../Default.aspx?Sid=1", false);

 Response.Redirect("../Default.aspx?Sid=1"); 

Response.Redirect("../Default.aspx?Sid=1", true);

答案 1 :(得分:2)

HttpResponse.Redirect Method

  

Redirect(String, Boolean)   将客户端重定向到新URL。   指定新URL以及是否   执行当前页面应该   终止。

这意味着Response.Redirect("../Default.aspx?Sid=1", false);不会终止当前的响应。

答案 2 :(得分:0)

IE在发送标题之后但在页面终止之前,比其他浏览器更敏感地更改DOM。

这是你的问题:

Response.Redirect("../Default.aspx?Sid=1", false);

尝试将false更改为true。

另外,要非常小心页面名称中的大小写。 “Default.aspx”和“default.aspx”实际上不是同一页面,即使Windows让你逃脱它。

相关问题