【问题标题】:MVC how to store user searches so user can go backMVC如何存储用户搜索以便用户可以返回
【发布时间】:2017-08-22 01:35:47
【问题描述】:

这样的事情可能吗?我有一个搜索页面,用户单击一个链接来编辑文档,然后将他们带到另一个页面。

然后用户点击浏览器的后退按钮,我想带他们回到他们离开的结果,这样他们就不必再次搜索。

编辑:搜索在用户输入参数时工作,它会输出到数据库并以搜索结果视图模型的类型返回结果。该视图模型被解析为表格格式并显示在屏幕上。每行都有一些与之相关的信息,例如主键和用户可以看到的其他内容。

一旦用户点击编辑,它就会使用主键返回数据库以获取该行的剩余数据并在屏幕上显示一个表单。如果用户点击浏览器上的后退按钮,我想将他们带回到他们刚刚查看的结果集,而无需重新进行搜索。

我们设置它的方式是,当用户回击时,它会转到只执行新搜索页面的 index 方法。

【问题讨论】:

  • 你使用角度,摆脱后退按钮,你应该很好。哦等等……
  • 这不是一个选项
  • @TerranceJackson 看看 html5 历史 API。它旨在完全按照您的要求进行。

标签: c# angularjs model-view-controller


【解决方案1】:

您可以使用HTML5 History API 执行此操作。例如,当搜索返回结果时,您可以使用:

history.replaceState(..);

修改当前浏览器历史记录条目。但它与一些旧浏览器不兼容,因此如果您必须支持这些浏览器,这可能无法正常工作 - 或者您必须找到解决方法。

存在一些封装历史 API 的 3rd 方 Angular 模块,但它本身应该可以正常工作。

【讨论】:

    【解决方案2】:

    我做到这一点的一种方法是使用控制器扩展方法从会话中获取页面的搜索状态。我确信在 Angular 中有更好的方法来做到这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-21
      • 1970-01-01
      • 2012-07-21
      • 1970-01-01
      • 2020-10-25
      • 1970-01-01
      • 2017-05-20
      • 1970-01-01
      相关资源
      最近更新 更多