【问题标题】:asp.net mvc RedirectToAction("Index") vs Index()asp.net mvc RedirectToAction("Index") vs Index()
【发布时间】:2008-11-29 03:07:50
【问题描述】:

假设我有一个带有索引方法和更新方法的控制器。更新完成后,我想重定向到 Index()。我应该使用 return RedirectToAction("Index") 还是只调用 return Index()?有区别吗?

public ActionResult Index()
{
  return View("Index", viewdata);
}

public ActionResult Update()
{
  // do updates
  return RedirectToAction("Index"); or
  return Index();
}

【问题讨论】:

    标签: c# asp.net asp.net-mvc


    【解决方案1】:

    使用重定向,否则客户端上的 URL 将与发布的 URL 保持相同,而不是与 Index 操作对应的 URL。

    【讨论】:

      【解决方案2】:

      其他需要考虑的事项:

      • 当用户单击刷新按钮时,POST 后的重定向操作会更好,因为不会提示他们将数据重新发送到服务器。

      • 除非您通过 TempData 等显式维护表单数据,否则重定向操作将丢失表单数据。如果不这样做,您的表单控件在 POST 之后将没有任何值,这在某些情况下可能是不可取的。

      【讨论】:

      • +1 用于重新发送数据的考虑,那个人为我做出了决定。
      • 我注意到的另一件事是,当我从另一个动作中 return Index() 时,虽然我希望系统获得 Index.cshtml 视图,但它实际上是在尝试获取原始动作的名称视图,因为它不存在,我遇到了一个错误。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-18
      • 2021-10-05
      • 2012-06-08
      • 2017-01-23
      • 1970-01-01
      • 2021-10-13
      • 2013-09-23
      相关资源
      最近更新 更多