是否可以保存和恢复完整的aspx页面?

时间:2012-05-15 12:23:18

标签: c# asp.net .net iframe

我们的客户有此要求:

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

现在是我的问题的一部分:

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

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

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

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

感谢您提出的所有建议。

3 个答案:

答案 0 :(得分:2)

听起来你可以使用.NET的@OutputCache页面声明和VaryByParam属性集(如果搜索参数至少通过查询字符串。)

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

  1. 将模态对话框设为自己的页面。
  2. 服务器上的
  3. Download the page(服务器连接到模式对话框页面并下载内容)。
  4. 将下载的页面存储在某个地方(可能是会话,但可能是数据库或文件系统)。
  5. 在模态对话框中添加iFrame(确保添加名称字段,否则在FF中不起作用)。
  6. 将模态对话框中的iFrame源设置为已保存的搜索结果。
  7. 应该注意的是,如果搜索结果使用服务器端,浏览器相关控件(根据服务器上指示的浏览器类型返回不同HTML的控件),此解决方案将出现问题。

    如果你愿意,如果你将div的内部html设置为保存页面上body标签的内部html,iFrame可以替换为div。

    我相信ASP中还内置了一个功能,可以获取页面的渲染文本,但我不记得它的名称。