MVC回到之前的不同动作

时间:2015-08-11 12:01:59

标签: jquery redirect action history tempdata

我有一个表格,可以从5个不同的页面到达。表单有保存和完成按钮。

保存按钮 - 提交表单(执行POST请求),然后重新加载同一页面(GET请求) 完成按钮 - 提交表单(POST请求),并应转到表单到达的5个位置之一。

我曾尝试使用TempData并在表单GET请求中保存位置,看起来很好,直到我使用Save按钮,因为当它重新加载页面时,TempData url是相同的(当前)url。

我相信jQuery有类似window.history.back的东西并跳过那些重新加载,但这是可能的,立即在提交按钮和帖子上执行,而不使用jQuery?也许有可能在MVC控制器中对以前的不同页面进行历史检查(我的意思是跳过重新加载并获得第一个不同的URL)? 任何帮助是极大的赞赏。

1 个答案:

答案 0 :(得分:0)

使用GET参数的方法看起来不错。我甚至不需要javascript,因为我一直被告知history.go是魔鬼。如果用户单击“保存”,为什么不能更改参数,以免丢失引用网址?

我会做以下事情:

  • 用户请求form.html?refer = origin.html
  • 服务器返回包含引用地址
  • 的隐藏字段的表单
  • on保存表单已提交且隐藏字段已保留,以便我们不会丢失信息
  • 在完成后,表单已提交,用户将被重定向到引用URL

我不是安全专家,但你可能想检查/逃避引用网址,以避免穷人的xss。