54

除了它们的返回类型之外Redirect,还有什么区别?RedirectToAction我们什么时候使用每个?任何现实生活场景的解释都会对我有很大帮助。

我在看Redirect 和 RedirectToAction 之间的混淆,但是,对我来说,答案似乎更具体地处理id参数和返回正确的视图。

4

1 回答 1

87

RedirectToAction允许您在应用程序中构造一个指向特定操作/控制器的重定向 url,也就是说,它将使用路由表来生成正确的 URL。

Redirect要求您提供要重定向到的完整 URL。

如果您对带有参数Index的控制器执行操作:HomeId

  1. 您可以使用RedirectToAction("Index", "Home", new { id = 5 })它将根据您的路由表为您生成 URL。

  2. 您可以使用Redirect但必须自己构建 URL,因此您可以通过,Redirect("/Home/Index/5")或者您的路由表可以正常工作。

  3. 您不能使用 重定向到google.com(外部 URL)RedirectToAction,您必须使用Redirect.

RedirectToAction用于在您的应用程序中执行 302 重定向,并为您提供一种更轻松的方式来处理您的路由表。

Redirect用于对其他所有内容进行 302 重定向,特别是外部 URL,但您仍然可以在应用程序中重定向,您只需要自己构建 URL。

最佳实践:用于RedirectToAction处理您的应用程序操作/控制器的任何事情。如果您使用Redirect并提供 URL,则需要在路由表更改时手动修改这些 URL。

于 2012-08-30T14:21:48.203 回答