我们正试图在MVC中实现以下故事:
客户点击常规操作/查看页面并填写表单。他们点击提交按钮将值发布回控制器,然后控制器开始长时间运行的后台进程。
客户被重定向到临时'处理 - 请稍候'页面。该页面使用AJAX定期轮询状态更新。
处理完成后,将客户重定向到结果页面。
关键要求:如果客户在步骤3点击浏览器中的后退按钮,他们应该返回到步骤1.我们不希望客户转到步骤2,我们不希望第2步出现在浏览器历史记录。
如果没有可怕的“重新提交已发布的值?”,我们怎样才能实现上述目标?消息呢?
请注意,我不是在寻找有关投票利弊的讨论。我知道这不是世界上最好的解决方案,我们可能会使用Signal R重构。故事对我来说很重要。
答案 0 :(得分:2)
只需将AJAX机制应用于步骤1(带有表单的页面),然后使用AJAX将信息发送回服务器并定期轮询操作进度。您可以使用JavaScript动态隐藏/显示“临时处理页面”,而无需实际重新加载页面。
答案 1 :(得分:1)
也许在进入resullt页面时,您可以使用window.location.replace (url);
?
基本上它会替换当前的历史项目,因此无法回复它。
有关详细信息,请参阅此讨论:window.location.replace (url);