在ASP.NET MVC中实现Post / Redirect / Get模式的最佳实践是什么?特别是,当您想要重定向回初始操作/控制器时,最好的方法是什么?
以下是我目前正在做的事情:
<%= Html.Hidden("returnUrl") %>
ViewData["returnUrl"] = Request.Url;
returnUrl
模型绑定,如果不是null
。否则,请重定向到主页。这就完成了工作,但感觉这会导致很多重复。我也意识到我可能会重定向到Request.UrlReferrer
...
你认为最干净,最理想的方法是什么?
答案 0 :(得分:12)
你这样做的方式很好,但看起来你可能会稍微过度思考它。您的POST操作是否从多个表单中获取表单帖子?如果没有,为什么还要隐藏一个隐藏的表格字段?你可以通过一个简单的RedirectToAction("MyAction")
答案 1 :(得分:4)
通常,处理POST的操作知道成功提交后需要重定向的位置。因此,实现RGP的每个操作都可以简单地调用RedirectToAction(string)
。
public ViewResult Edit(string email)
{
// save the email
return RedirectToAction("Edit");
}