Session URL路由能否帮助解决多个选项卡和会话存储中的问题?

Session URL路由能否帮助解决多个选项卡和会话存储中的问题?,session,tabs,url-routing,Session,Tabs,Url Routing,我有一个应用程序,它在会话中存储数据库ID,同时编辑几页数据。当用户打开多个选项卡或窗口时,数据将被覆盖,因为ID被交叉。我完全理解这个问题,并打算通过将ID从存储器中取出并在查询字符串中传递来解决这个问题;然而,我认为URL路由可能是一个更好的解决方案。例如,我的URL可以是…/Invoice/123 我最担心的是一次需要多个ID。例如,发票可能有一个行项目列表,因此我必须使用带有…/invoice/123/LineItem/456的URL。有人能告诉我这在路由方面是否可行吗 另外,我是否还有

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

我最担心的是一次需要多个ID。例如,发票可能有一个行项目列表,因此我必须使用带有…/invoice/123/LineItem/456的URL。有人能告诉我这在路由方面是否可行吗


另外,我是否还有其他顾虑,或者这是一个坏主意的原因?我所描述的最初问题是以前的一篇文章中提到的ASP.NET会话在多个选项卡窗口之间共享的方式,如果我不清楚上面的内容的话。提前感谢。

如果我理解正确,问题是您正在存储有关用户在会话中编辑的记录的信息,但有些用户正在打开多个选项卡,从而打破了您的假设,即他们一次只编辑一条记录

我没有使用ASP.NET,但是在我使用的MVC框架中,使用invoice/123/lineitem/456URL方法没有问题。Invoice将是您正在使用的主控制器,123、lineitem和456都将是传递给它的变量。你只需要确保你确切地知道你需要传入和映射哪些变量和多少变量


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

我一开始不理解这个问题。您所说的数据被覆盖是什么意思,因为ID被交叉了?你能举一个真实的例子吗?用户在会话中打开一个InvoiceID设置为123的发票页面。然后,用户打开第二个选项卡并打开InvoiceID设置为456的发票页面。因此,应用程序在会话中具有InvoiceID=456。现在,用户返回并更新原始选项卡,它被456而不是123中的数据覆盖。是的,这就是我描述的问题。对不起,我不清楚。因此,根据您所说的,我可以开始使用路由而不是会话来存储ID,以防止问题发生。令人惊讶的是,我在任何地方都找不到关于这种方法的任何信息,所以我对使用它有点犹豫。您确实回答了我的主要问题,即是否可能有多个路线信息,即发票和行项目。谢谢。没问题。。。您不想使用隐藏表单字段有什么原因吗?这是正常的做法。我有几页都与发票有关。例如,发票摘要、发票行项目、发票注释、发票文档等。因此,我需要一种方法将发票ID保存在多个页面上,这样我就没有一个表单可以隐藏字段。