导航到其他页面/门户时如何/在哪里存储页码

问题描述

|| 我在CMS系统C#.NET中使用用户控件(* .ascx) 我有一个显示地址的Gridview。您在订单项上拥有一个链接,然后可以单击项目(链接),该项目导航到带有查询字符串信息的其他页面并显示详细信息。当用户单击“取消/返回”时,它将返回概述页面。两者都是单独的程序。 当用户单击下一步,下一步,下一步时,例如显示第7页。因此,单击第7页上的“广告链接”将打开一个新页面,当用户返回时,它应该再次显示第7页。 我在一个会话中保留页码。因此,当用户回来时,它会从会话中读取页码。这很好。但问题在于此模块也用于其他地方,也用于其他门户网站(使用相同的模块) 因此,当单击“ Next next”等后,您在第7页上,然后打开另一个具有相同模块的门户网站或其他Porgram时,它将显示第7页。因为它读取Session变量并输入某种信息,因为第7页没有\不存在,因为没有太多记录。 Viewstate可以解决此问题,但是每次单击adres项目并返回后,它都会显示第1页,这不是我想要的。 正如我所说,我在其他页面和其他门户网站中使用相同的模块(同一程序,但CMS -system的设置不同)...所以我需要在哪里以及如何存储页码,以便与其他页面没有冲突和其他门户? ViewState [\“ page \”] = 7->每当您回来时,总是从第1页开始 会话[\“ page \”] = 7->共享页码。     

解决方法

为什么不在会话中保留结构或字典而不是简单的int。在此您可以存储页面以及模块。     ,我相信您需要考虑实例化。看来您需要隔离CMS的每个实例,以便每个实例将共享自己的一组服务器变量,包括会话变量。 好的,您使用的是ASCX控件,但是您可以使用一些“应用程序标识符”,因此任何控件实例都可以拥有自己的一组值。 无论如何,将长对象存储在会话中是一种不好的做法,因为“正在处理”之外的其他模式将在每次访问会话状态时对对象进行序列化和反序列化。 也许您需要某种自定义会话管理以优化性能和内存使用,以便正确隔离组件并使它们保持性能。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...