我在第一页的asp.net会话中存储了一些值.在下一页上,正在读取此会话值.但是,如果打开了多个选项卡并且有多个页面1->第2页导航,则会话中存储的值会混淆,因为会话在浏览器选项卡之间共享.
我想知道这有什么选择:
查询字符串:使用查询字符串在页面之间传递值,我不想采用这种方法,因为第1页上可能有多个锚标记链接到第2页,我不能重写每个标记的URL,因为它们是动态的.
饼干???内存中的cookie也可以在浏览器选项卡中共享,与会话cookie,rite相同?
还有其他选择吗?
PS:第1页到第2页不是表单提交.
ace*_*ace 15
我找到了一个解决方案:
使用Javascript通过将guid值分配给window.name属性,将类似guid的唯一ID分配给浏览器窗口/选项卡.window.name属性对于每个浏览器窗口/选项卡都是唯一的,不会在窗口之间共享.
使用guid作为密钥,通过Web服务读取和写入ASP.NET会话的数据.由于javascript无法访问asp.net会话,因此您需要使用Web服务并通过javascript调用它的方法.
可以通过JSON在javascript和webservice之间传输数据.
这类似于ViewState自动执行的操作.
编辑
评论回复
我不认为这是可能的,因为你描述它.
在您的问题中,您提到了第1到2页的导航.如果用户在浏览器中键入第2页的URL,那么如何将当前页面2呈现与上一页1相关联?
您需要执行某些操作,除非代码隐藏可以搜索已在第1页停止的未完成工作流的列表,并将其用作新页2呈现的上一个guid值.
评论回复2
你可以找到页面上的所有链接并修改它们,但它暗示出了什么问题(在我看来).但...
http://www.extremeexperts.com/Net/Articles/LoopingthroughControls.aspx
为您提供一种处理页面上所有控件的简单方法.您可以轻松地测试控件是否是超链接.并非所有链接都需要为此设置runat ="server"参数.
| 归档时间: |
|
| 查看次数: |
30647 次 |
| 最近记录: |