用脚本打开新窗体不能访问Session问题
遇到了个非常头痛的问题,通过打开窗体的方式来显示页面后不能访问Session值。可能是IIS服务把新开的窗体当作一个新的连接,重新分配Session会话。出现这情况是使用了一种比较特别的打开窗体方式正好项目碰上了。发生问题的打开窗体方式:先ShowModalDialog一个模式窗体,然后在模式窗体再Open一个窗体,这时候打开的页面就不能访问之前面设置的Session值。如果统一用ShowModalDialog或Open打开就不存在这情况。
相关代码
Default.aspx
protected void Page_Load(object sender, EventArgs e)
{
Session["henry"] = "bbq";
ShowModalDialog show = new ShowModalDialog("open.aspx", "default2.aspx");
RegisterScript.RegiOnClick(LinkButton1, show, new NotPost());
}
Default2.aspx
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(Session["henry"]);
OpenWindow open = new OpenWindow("Default2.aspx");
RegisterScript.RegiOnClick(LinkButton1, open,new NotPost());
}
当点击Default2.aspx的按钮重新打开Default2.asp时就不能输出原有Session的值。
自己实在找不到相关解决方法,所以放在首页请求各位兄弟帮忙看下。