asp.net mvc RedirectToAction(“Index”)vs Index()

时间:2008-11-29 03:07:50

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

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

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

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

2 个答案:

答案 0 :(得分:23)

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

答案 1 :(得分:11)

需要考虑的其他事项:

  • 当用户点击“刷新”按钮时,POST后的重定向操作会更加顺畅,因为系统不会提示他们将数据重新发送到服务器。

  • 表单数据将因重定向操作而丢失,除非您通过TempData明确维护它们。如果不这样做,您的表单控件在POST后将没有任何值,在某些情况下这可能是不受欢迎的。