是否可以保存和还原完整的aspx页

本文关键字:aspx 还原 保存 是否 | 更新日期: 2023-09-27 18:34:08

我们的客户有这个要求:

  • 当用户单击窗体上的搜索图标时,搜索页面应显示在模式对话框 (iframe( 中
  • 用户可以搜索、浏览其搜索结果和选择记录
  • 现在模式对话框隐藏,用户查看记录
  • 当用户再次单击搜索图标时,模式对话框将再次显示

现在我问题的部分:

    当用户离开当前页面,
  • 并在几分钟后返回页面并再次按搜索图标以继续搜索时,他应该看到与之前离开的位置相同的页面。

我更喜欢只保存完整的页面,并在用户想要再次查看搜索页面时恢复它。但我不知道这是否可能。

我真的不想保存所有搜索过滤器,并在用户进入搜索页面时再次进行搜索,因为> 100 个搜索过滤器,搜索也可以同时进行。

客户很难要求他能够继续搜索,并且不应该每次再次进入搜索页面时都重新开始。

感谢您对此的所有建议。

是否可以保存和还原完整的aspx页

听起来你可以使用 .NET 的 @OutputCache 页声明,设置了 VaryByParam 属性(如果搜索参数至少通过查询字符串传递(。

我会想出某种自定义缓存机制来将搜索结果存储在服务器上。 当用户提交搜索时,结果将存储在缓存中,并将密钥返回到页面。 然后,当用户单击按钮重新查看结果时,使用密钥从服务器检索结果。

为什么不将搜索结果保存到会话或视图状态变量?

如果我处于您的位置(并且无法将搜索结果保存到会话变量(,我会:

  1. 使模式对话框成为自己的页面。
  2. 在服务器上下载页面(服务器连接到模式对话框页面并下载内容(。
  3. 将下载的页面存储在某个地方(可能是会话,但也可能是数据库或文件系统(。
  4. 将 iFrame 添加到模式对话框(请确保添加名称字段,否则它在 FF 中不起作用(。
  5. 在模式对话框中将 iFrame 的源设置为保存的搜索结果。

应该注意的是,如果搜索结果使用服务器端、依赖于浏览器的控件(根据服务器上指示的浏览器类型返回不同 HTML 的控件(,则此解决方案将出现问题。

如果需要,如果将div 的内部 html

设置为已保存页面上正文标记的内部 html,则可以将 iFrame 替换为div。

我相信ASP中还内置了一个功能,它将获取页面的呈现文本,但我不记得它叫什么了。