代码之家  ›  专栏  ›  技术社区  ›  Charles

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

  •  15
  • Charles  · 技术社区  · 16 年前

    在ASP.NET MVC中实现post/redirect/get模式的最佳实践是什么?尤其是,当您想要重定向回初始操作/控制器时,最好的方法是什么?

    以下是我目前的做法:

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

    这就是任务的完成,但感觉这会导致大量重复。我也意识到我可能会转向 Request.UrlReferrer

    你认为实现这一目标最干净、最理想的方法是什么?

    2 回复  |  直到 16 年前
        1
  •  12
  •   Scott Arrington    16 年前

    你做这件事的方式很好,但看起来你可能有点想过头了。您的发布操作是否采用来自多个表单的表单发布?如果不是,为什么还要麻烦隐藏表单字段?你可以用一个简单的 RedirectToAction("MyAction")

        2
  •  4
  •   G-Wiz RameshVel    16 年前

    通常,处理日志的操作知道成功提交后需要重定向到哪里。因此,实现rgp的每个操作都可以简单地调用 RedirectToAction(string) .

    public ViewResult Edit(string email)
    {
      // save the email
      return RedirectToAction("Edit");
    }
    
    推荐文章