Redirect
和RedirectToAction
除了返回类型之外有什么区别?
我们什么时候使用?任何现实生活场景的解释都会对我有很大帮助。
我正在查看Confusion between Redirect and RedirectToAction,但是,对我来说,看起来答案更具体地处理id
参数并返回正确的视图。
答案 0 :(得分:77)
RedirectToAction
允许您为应用程序中的特定操作/控制器构建重定向URL,也就是说,它将使用路由表生成正确的URL。
Redirect
要求您提供完整的网址以重定向到。
如果您在控件Index
上有一个参数为Home
的操作Id
:
您可以使用RedirectToAction("Index", "Home", new { id = 5 })
根据您的路线表为您生成网址。
您可以使用Redirect
,但必须自行构建网址,以便传递Redirect("/Home/Index/5")
或路由表有效。
您无法使用google.com
重定向到RedirectToAction
(外部网址),您必须使用Redirect
。
RedirectToAction
用于在您的应用程序中执行302重定向,并为您提供更简单的方法来处理路由表。
Redirect
用于执行302重定向到其他所有内容,特别是外部URL,但您仍然可以在应用程序中重定向,您只需自己构建URL。
最佳做法:使用RedirectToAction
处理与您的应用操作/控制器有关的任何事情。如果您使用Redirect
并提供网址,那么您需要在路由表更改时手动修改这些网址。