protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            try
            {
                string mail = Session["user"].ToString();
                if (mail != null)
                {
                    RegisterStartupScript("test", "<script>window.location='/myaccount.aspx'</script>");
                }
            }
            catch { }
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Session["user"] = txtEmail.Text;
        
        RegisterStartupScript("TestEvent", "<script>window.location='/myaccount.aspx'</script>"); 
    }我这个是一个登录按钮点击登录将用户名(邮件)保存在session里,如果用户已经登录成功了仍然在浏览器导航栏输入login.aspx的话,检查session是否存在(判断是否登陆)跳转到对应的myaccount页面,火狐里面完全没问题,但是在IE里面如果重新输入login.aspx进入的话,根本不会运行,而火狐运行,请问怎么解决呢?没分了各位见谅谢谢拉!

解决方案 »

  1.   

    跳转直接用response.redirect这个方法
      

  2.   

    应该没关系IE8和火狐都能进入IE7和IE9都不行,火狐和IE8你在地址栏输入了url我用断点追踪是又执行了一下这个代码,而IE7和IE9根本不走这些代码,但是你再刷新下就走了...
      

  3.   

    是不是session为空 然后你又try了一下,所以没有效果呀。你先把 try catch注释掉 再试试
      

  4.   

     string mail = Session["user"].ToString();这句代码如果第一遍登录的话,会报错,所以用了try
      

  5.   

    。你这句是有问题的, 你先判断 session是否为空
    string mail="";
     if(Session["user"]!=null)
      mail=Session["user"].ToString();
      

  6.   

    不用try catch
    直接
    if(Session["user"]!=null)
    {
        //session有值的代码
    }
    else
    {
        
    }
      

  7.   

    刚才试了下火狐还是没问题能跳转,IE还是不动,我再里面放了个alert都不弹,也就是说执行不到,会不会是IE的机制和火狐不同呢?
      

  8.   

    火狐没问题,IE进不来这个方法怎么banner?难道跟他们的机制有关?不太可能啊?我现在只是需要判断下session就跳页面啊
      

  9.   

    不用try catch
    先判断session是否为空,再执行代码,就不会报错了。
    因为session本身就是一个不很稳定的东西,在用到的地方都先加个判断
      

  10.   


    string mail = Session["user"];
                    if (mail != null)这样判断试试
      

  11.   

    又见  object.ToString() 不进行非空检查。
      

  12.   

    火狐个IE不兼容的问题我也遇到过,你在看看session
      

  13.   

    主要是IE的话根本就不进入这个onload方法,我改代码不执行啊