0

我们试图在 MVC 中实现以下故事:

  1. 客户点击常规操作/查看页面并填写表格。他们单击提交按钮将值发布回控制器,这反过来又启动了一个长时间运行的后台进程。

  2. 客户被重定向到一个临时的“处理 - 请稍候”页面。该页面使用 AJAX 定期轮询状态更新。

  3. 处理完成后,将客户重定向到结果页面。

关键要求:如果客户在第 3 步点击浏览器中的“后退”按钮,他们应该返回到第 1 步。我们不希望客户转到第 2 步,也不希望第 2 步出现在浏览器历史记录中。

如果没有可怕的“重新提交发布值”,我们如何实现上述目标?也发消息?

请注意,我不是在这里讨论投票的利弊。我知道这不是世界上最好的解决方案,我们可能会使用 Signal R 进行重构。故事对我来说很重要。

4

2 回答 2

2

只需将 AJAX 机制应用到第 1 步(带有表单的页面)并使用 AJAX 将信息 POST 回服务器并定期轮询操作的进度。您可以使用 JavaScript 动态隐藏/显示“临时处理页面”,而无需实际重新加载页面。

于 2013-06-07T15:42:37.483 回答
1

也许在转到结果页面时,您可以使用window.location.replace (url);?

基本上它将替换当前的历史项目,因此他们无法回到它。

有关更多信息,请参阅此讨论:window.location.replace (url);

于 2013-06-07T16:18:33.487 回答