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过期了 所以还是会出错,最好呢,你在事件里也判断下就好了
------解决方案--------------------
执行的时候报错就捕获它,抛出一个异常,处理一下亦可以,转到session过期的页面
[解决办法]
lz你试试这样子办
不写response.end
这样会触发Click()事件导致报错
那么在Click()事件里面再进行一次session判定,如果这个session已经丢失的话直接break或者return出来
不继续执行后面的代码就是了