是否可以保存和还原完整的aspx页
本文关键字:aspx 还原 保存 是否 | 更新日期: 2023-09-27 18:34:08
我们的客户有这个要求:
- 当用户单击窗体上的搜索图标时,搜索页面应显示在模式对话框 (iframe( 中
- 用户可以搜索、浏览其搜索结果和选择记录
- 现在模式对话框隐藏,用户查看记录
- 当用户再次单击搜索图标时,模式对话框将再次显示
现在我问题的部分:
- 当用户离开当前页面,
- 并在几分钟后返回页面并再次按搜索图标以继续搜索时,他应该看到与之前离开的位置相同的页面。
我更喜欢只保存完整的页面,并在用户想要再次查看搜索页面时恢复它。但我不知道这是否可能。
我真的不想保存所有搜索过滤器,并在用户进入搜索页面时再次进行搜索,因为> 100 个搜索过滤器,搜索也可以同时进行。
客户很难要求他能够继续搜索,并且不应该每次再次进入搜索页面时都重新开始。
感谢您对此的所有建议。
听起来你可以使用 .NET 的 @OutputCache 页声明,设置了 VaryByParam 属性(如果搜索参数至少通过查询字符串传递(。
我会想出某种自定义缓存机制来将搜索结果存储在服务器上。 当用户提交搜索时,结果将存储在缓存中,并将密钥返回到页面。 然后,当用户单击按钮重新查看结果时,使用密钥从服务器检索结果。
为什么不将搜索结果保存到会话或视图状态变量?
如果我处于您的位置(并且无法将搜索结果保存到会话变量(,我会:
- 使模式对话框成为自己的页面。
- 在服务器上下载页面(服务器连接到模式对话框页面并下载内容(。
- 将下载的页面存储在某个地方(可能是会话,但也可能是数据库或文件系统(。
- 将 iFrame 添加到模式对话框(请确保添加名称字段,否则它在 FF 中不起作用(。
- 在模式对话框中将 iFrame 的源设置为保存的搜索结果。
应该注意的是,如果搜索结果使用服务器端、依赖于浏览器的控件(根据服务器上指示的浏览器类型返回不同 HTML 的控件(,则此解决方案将出现问题。
如果需要,如果将div 的内部 html设置为已保存页面上正文标记的内部 html,则可以将 iFrame 替换为div。
我相信ASP中还内置了一个功能,它将获取页面的呈现文本,但我不记得它叫什么了。