页面组成:
分别是Main.aspx
A.aspx
b.aspxmain.aspx中包含有两个iframe,分别对应a.aspx,b.aspx出错现象:第一次访问b.aspx页面的Session对象是会出错,第二次访问开始就不会.请问如何解决?

解决方案 »

  1.   

    当在a.aspx里创建过SESSION或更改过SESSION值后,在a.aspx里通过js让b.aspx的那个iframe重新加载一次.
      

  2.   

    调试时发现a,b页面的sessionid都是一样的.根本就没有丢失,但为何第一次访问存储在b页面的session对象就出错....再访问就没问题.
      

  3.   

    错误是什么?你怎么操作的?
    我自己测试了下,在A页面中写个session,然后在main中去访问,一点问题也没有.
      

  4.   

    a.aspx.cs:::::Session.Add("aaa","aaa");
    Session.Add("bbb","bbb");
    Response.Write("<script language=javascript>window.parent.document.all.biframe.src='b.aspx';</script>");
      

  5.   

    or
    window.parent.document.all.biframe.location.href='b.aspx'
      

  6.   

    出错的原因:a和b是同时加载的,在a.aspx加载完成并给Session赋值之前,b.aspx试图访问这个还没有创建的Session,肯定就报错了
    只需要在b.aspx稍做判断就可以了
    if(Session["test"]!=null)
    {
      //......
    }
      

  7.   

    还有一个解决办法是iframe1指向a.aspx,而iframe2已开始为空
    然后再a.aspx页面的Page_Load里,完成了对Session赋值之后通过Response.Write的方式输出脚本:window.parent.document.all['iframe2'].src='b.aspx'
    这时候才载入b.aspx~~
      

  8.   

    Session在使用之前一定要判断是否为null,否则至少会使局部程序变得脆弱,严重则影响整个系统运行
      

  9.   

    没问题啊, 哪有a.aspx load的时候就赋值session b.aspx load去读的啊, 没有什么实际的需求需要这样做吧
      

  10.   

    to: Eddie005(♂) №.零零伍 (♂) (这些程序如果不放在IFRAME里面根本就没有这些SESSION丢失的问题..我想应该是IFRAME引起,请问还有其他解决方法..请各位大吓继续顶顶,分不够再开.
      

  11.   

    Session在使用之前一定要判断是否为null,否则至少会使局部程序变得脆弱,严重则影响整个系统运行嗯深有体会了楼主可以用异常处理判断一下,如果有值就用,如果没有值用创建个并赋值,我以前就这么干的
      

  12.   

    不能在前一个页面 ,先创建session 吗?
      

  13.   

    使用Session前应该先判断是否为Null。
      

  14.   

    同意 Eddie005(♂) №.零零伍 (♂) 的说法
      

  15.   

    我没碰到过这样的问题,不过可以想办法绕开这个问题~
    Main.aspx在引用a.aspx,b.aspx时可以通过URL把参数传过去,保准不会有问题
      

  16.   

    第一次访问b.aspx页面的Session对象
    ------------------------------------
    是什么时候访问的
      

  17.   

    原.我讲得不够详细:
    页面b中打开模式窗体c的时候才会出现访问b页面定义的SESSION对象出错的问题.
    但同样b页面这些程序如果不放在IFRAME里面根本就没有这些SESSION丢失的问题..我想应该是IFRAME引起,
      

  18.   

    个人认为不管是不是有问题.应先判断session是否为空.
      

  19.   

    这是由于页面加载先后不一引起的,可以用JS控制页面加载顺序,或者在读取Session对象时做一个是否为null的判断.
      

  20.   

    看来lz还是没有听明白,这并不是一个所谓的Session丢失的问题,也跟iframe没有太大关系而是一个最基本的先后逻辑的问题:举个例子,两个人共用一个银行帐户,A存钱,B取钱,那么B总得等A先把钱存进去B才能取得到嘛,A都还没有存好,B就开始叫了“帐户里的钱怎么丢了!”
    这不是很明显的问题吗?
      

  21.   

    海盗分金-_-!
    第一个页面载入时创建session,然后写脚本载入第二个页面
    感觉有点奇怪啊,楼主的"第一次访问b.aspx页面的Session对象是会出错",为什么a,b第一次载入时要创建session,什么都还没有做好像,或者试试session在main.load中创建
      

  22.   

    ab两个页面会在iframe同时加载,要B第一次就能读取A中的Session的值是不可能的,因为B中读Seesion时,Seesion还是个Null
      

  23.   

    Eddie005(♂) №.零零伍 (♂) 的比喻打的很好哦