目前我们正在使用 window.open 打开一个新的 aspx 页面。window.open 位于当前 aspx 页面中的 javascript 函数 (openNewWindow()) 中,单击 asp.net 超链接控件时会调用该函数。
链接是由我们的框架在页面上动态创建的,因此我想避免更改该功能。
问题似乎是当这个新的“子”窗口关闭时,会话状态会丢失。我应该提到,在“子”窗口关闭后,会话在子窗口中可用,但在“父”窗口中不可用。
有趣的是,似乎在我们应用程序的其他地方,如果通过在超链接控件的代码隐藏单击事件上使用 ClientScriptManager.RegisterStartupScript 调用将 open.window 调用添加到页面(而不是调用在aspx) 会话被保留。
如果不进行重大更改和所有需要的回归测试,后一种解决方案将难以在当前框架代码中实现。
任何人都知道如何在子窗口关闭后保持会话状态处于活动状态。
顺便说一句,这发生在 IE7 中,我们的应用程序是基于 asp.net 2.0 的。
提前感谢您对这个问题的深刻而优雅的解决方案!;o)