日期:2014-05-17  浏览次数:20411 次

Session过期的跳转处理
各位好:
我有一个页面里面在Session中存储了几个值。但是我发现Session过期后,会导致页面报错。
于是在Page_Load里面加一个判断,如果过期了,弹出提示,然后跳转到首页。

        if (IsPostBack)
        {
            if (Session["selectNode"] == null)
            {
                //Response.Redirect("default.aspx");
                //Page.ClientScript.RegisterStartupScript(this.GetType(), "Redirect", "<script type='text/javascript'>top.location=\"default.aspx</script>");
                Response.Write("<script type='text/javascript'>alert();</script>");
                Response.End()
                //return;
            }
        }


因为我是一个有多个Frameset的页面,所以不能用redirect。如果不用Response.End(),Page_Load执行完后还会执行定义的按钮事件,出现异常。如果用Response.End(),通过脚本跳转的方式又不会执行。

求指点。

------解决方案--------------------

Response.Write("<script type='text/javascript'>window.parent.location='login.aspx'</script>");
//基于父页面进行跳转

------解决方案--------------------
不回发 首次加载页面时判断,然后去掉Response.End()
IsPostBack
=>
if(!IsPostBack)
------解决方案--------------------
Response.Redirect("login.aspx");//若session为空跳转首页
------解决方案--------------------
执行Click事件前判断一下,过期就不要执行了
------解决方案--------------------
这样给你说嘛 ,你在page_load中处理session这时没过期的情况不会出错,
但是在Click的时间session过期了 所以还是会出错,最好呢,你在事件里也判断下就好了
------解决方案--------------------