在ASP.NET MVC中发布/重定向/获取模式

Cha*_*les 15 c# asp.net-mvc post-redirect-get

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

这是我目前正在做的事情:

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

这是完成工作,但感觉这将导致大量重复.我也意识到我可能会重定向到Request.UrlReferrer......

您认为最干净,最理想的方法是什么?

Sco*_*son 13

你这样做的方式很好,但看起来你可能会稍微过度思考它.您的POST操作是否从多个表单中获取表单帖子?如果没有,为什么还要隐藏一个隐藏的表格字段?你可以简单地逃脱RedirectToAction("MyAction")