在D.html中
window.onload时
接收到模态窗口传过来的参数
然后把location 重新定向到 e.aspx?para=" + 参数
然后
在e.aspx中
<frame src="f.aspx?para=<%=Request.QueryString["para"]!= null?Request.QueryString["para"].ToString():""%>"">
...

解决方案 »

  1.   

    这个问题已经解决了那为什么三个页面会出现三个不同SessionID呢?
      

  2.   

    e跟f 的sessionid应该是一样的
    b和ef因为有弹出窗口,可能存在不一样的问题
      

  3.   

    可能是我用了一个大文件上传组件的原因,居然出现了同一个页面里有两个SessionID的情况,Page_Load里是一个,button_Click里却是完全不同的另一个。
    而且有下面的情况:
    Page_Load()
    {
     Session["temp"] = 2;
    }
    button_Click()
    {
     Response.Write(Session["temp"].ToString());
    }
    --------------这样可以成功
    但如果这样写就报错,说未将对象引用到实例:
    Page_Load()
    {
     Session["temp"] = Request.QueryString["temp"];
     //这里的Request.QueryString["temp"]的值是2,我验证过了的。而且Session["temp"]也已经有了值,是2,这肯定没错。但是到button_Click()函数中的时候,这个Session就莫名其妙的没了。
     //而且比如这里的SessionID和button_Click()里的SessionID不一样
    }
    button_Click()
    {
     Response.Write(Session["temp"].ToString());
    }
    ---------------------------------
    总之,今天我见了鬼了
    ---------------------------------
    下班了,明天接着讨论
      

  4.   

    用window.showModalDialog弹出窗体A,然后又在A上用window.open打开窗体B
    那么B中的Session值会丢失,这是IE的BUG
      

  5.   

    现在我在a.aspx上用window.showModalDialog("a.htm",args,options)打开对话框,a.htm上有一iframe,onload的时候设置iframe的location为b.aspx,在b.aspx中居然得不到a.aspx中声明的Session。在我的机子上是这样,但是到同事的机子上打开就没事。肯定是我的IE坏了,但是又不知道该怎么修复啊?除了重装系统,还有别的办法吗?