ASP.NET MVC中的Redirect和RedirectToAction有什么区别?

时间:2012-08-30 14:14:27

标签: asp.net-mvc

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

我正在查看Confusion between Redirect and RedirectToAction,但是,对我来说,看起来答案更具体地处理id参数并返回正确的视图。

1 个答案:

答案 0 :(得分:77)

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

Redirect要求您提供完整的网址以重定向到。

如果您在控件Index上有一个参数为Home的操作Id

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

  2. 您可以使用Redirect,但必须自行构建网址,以便传递Redirect("/Home/Index/5")或路由表有效。

  3. 您无法使用google.com重定向到RedirectToAction(外部网址),您必须使用Redirect

  4. RedirectToAction用于在您的应用程序中执行302重定向,并为您提供更简单的方法来处理路由表。

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

    最佳做法:使用RedirectToAction处理与您的应用操作/控制器有关的任何事情。如果您使用Redirect并提供网址,那么您需要在路由表更改时手动修改这些网址。