c# - ASP.NET MVC 中的发布/重定向/获取模式

标签 c# asp.net-mvc post-redirect-get

在 ASP.NET MVC 中实现 Post/Redirect/Get 模式的最佳实践是什么?特别是,当您想重定向回初始操作/ Controller 时,执行此操作的最佳方法是什么?

这是我目前的做法:

  1. 向用户显示表单。
    • 在表格中,使用<%= Html.Hidden("returnUrl") %>
    • 在行动中,使用ViewData["returnUrl"] = Request.Url;
  2. 用户通过 POST 提交表单
  3. 重定向到 returnUrl模型绑定(bind),如果没有 null .否则,重定向到主页。

这样就完成了工作,但感觉这会导致大量重复。我还意识到我可能会重定向到 Request.UrlReferrer ...

您认为实现此目的最干净、最理想的方法是什么?

最佳答案

您这样做的方式很好,但看起来您可能想得太多了。您的 POST 操作是否采用来自多个表单的表单帖子?如果不是,为什么还要使用隐藏的表单域呢?您可以使用简单的 RedirectToAction("MyAction")

关于c# - ASP.NET MVC 中的发布/重定向/获取模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2120882/

相关文章:

php - 拉维尔 4 : Prevent multiple form submissions - CSRF Token

c# - 在 C# 中使用 DrawString 对齐文本

java - 如何使用 Drakon 图编辑器真正生成 c#/java 代码?

c# - HttpWebrequest 失败,yande.re(以及 IE 和 curl)["The request was aborted: Could not create SSL/TLS secure channel."]

javascript - 如果 Controller 失败,如何在 View 中显示错误? ASP.NET MVC

asp.net-mvc - 将模型传递给 RedirectToAction()

c# - 如何在不使用 Response.Redirect 的情况下返回 "Go Back"

c# - MVC 中的 MEF 和嵌入式 View

php - 更多重定向后获取问题,我做错了什么

forms - 使用 yesod-form 在 POST/Redirect/GET 后保留不正确的用户输入