URL路由可以帮助解决多个选项卡和会话存储中的问题吗?

时间:2010-08-18 16:51:07

标签: session tabs url-routing

我有一个应用程序在编辑多个数据页面时在会话中存储数据库ID。当用户打开多个选项卡(或窗口)时,数据将被覆盖,因为ID已被越过。我完全理解了这个问题,并且通过从存储中取出ID并在查询字符串中传递它来解决这个问题。但是,我认为URL路由可能是更好的解决方案。例如,我的URL可以是... / Invoice / 123。

我最担心的是我一次需要多个ID。例如,发票可能包含订单项列表,因此我必须使用带有... / Invoice / 123 / LineItem / 456的网址。有人可以告诉我这是否可以通过路由?

另外,我应该有其他问题或理由这是个坏主意吗?我正在描述的原始问题是在前一篇文章中标注为“在多个选项卡窗口中共享ASP.NET会话的方式”,如果我上面不清楚的话。提前谢谢。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,问题是您正在存储有关用户在会话中编辑哪条记录的信息,但有些用户正在打开多个标签,从而搞砸了他们只是在编辑一条记录的假设一时间

我没有使用过ASP.NET,但是对于我使用的MVC框架,使用invoice / 123 / lineitem / 456 URL方法没有问题。发票将是您正在使用的主要控制器,123,lineitem,456都将是传递给它的变量。您只需确保确切地知道需要传入哪些(以及多少)变量并将其映射出来。

由于您的问题非常模糊,我不知道您是如何使用它的,但最简单的解决方案可能是使用隐藏的表单字段,例如名称“lineitem”和值“456”。