所以我在选项卡/浏览器中保存唯一的集合时遇到了问题(实际上是标签)。 在ASP中回调后使用静态变量来存储数据不能很好地工作,因为所有浏览器都可以从中读取并修改变量。 使用会话变量不能很好地工作,因为虽然它成功地使集合在浏览器中是唯一的 - 但它在标签之间并不是唯一的。因此,一个Mozilla选项卡可以修改会话变量中的集合(集合更改) - 当再次访问集合时,用户将使用另一个Mozilla选项卡时会出现令人讨厌的惊喜 - 不幸的是SAME集合 - 类似于脏读即可。 所以问题是 - 如何在标签/浏览器之间创建有状态但独特状态的集合,以便每个集合都可以拥有自己独特的集合并可以自由地修改它。
我在这里看到的问题是一个标签不断地创建一个ajax请求,它总是重新创建控制器对象,这意味着它永远不会是唯一的。
另一个想法是在javascript中保存对此集合的引用 - 然后在每个请求期间来回传递此引用 - 问题是如何在不序列化/反序列化的情况下执行此操作,哪种方法会失败,只需保存参考:(
欢迎任何想法。
不起作用的方法:会话,应用程序/静态(尚未尝试应用程序,但似乎行为相同)。 ViewState会工作吗?但它似乎没有保存数据:'(
答案 0 :(得分:2)
使用自定义路由替换默认路由,该路由将GUID添加到uri。并使用该GUID加载会话。
我在我的博客中为您做了一个例子:http://blog.gauffin.org/2012/02/get-a-unique-session-in-each-browser-tab/
答案 1 :(得分:1)
您可以将信息存储到window.name中,每个选项卡应该是唯一的,因为每个选项卡都是不同的窗口。