除了返回类型之外,Redirect
和 RedirectToAction
之间还有什么区别?
我们什么时候使用每一个?对任何现实生活场景的解释都会对我有很大帮助。
我正在查看Confusion between Redirect and RedirectToAction ,但是,对我来说,答案似乎更具体地涉及处理 id 参数并返回正确的 View 。
最佳答案
RedirectToAction
允许您构建指向应用程序中特定操作/ Controller 的重定向 URL,也就是说,它将使用路由表生成正确的 URL。
重定向
要求您提供要重定向到的完整 URL。
如果您在 Controller Home
上有一个带有参数 Id
的操作 Index
:
您可以使用
RedirectToAction("Index", "Home", new { id = 5 })
,它将根据您的路由表生成 URL。您可以使用
Redirect
但必须自己构造 URL,因此您可以传递Redirect("/Home/Index/5")
或路由表有效。您无法使用
RedirectToAction
重定向到google.com
(外部网址),必须使用Redirect
。
RedirectToAction
用于在应用程序中执行 302 重定向,并为您提供更轻松的方式来使用路由表。
Redirect
用于执行 302 重定向到其他所有内容,特别是外部 URL,但您仍然可以在应用程序内重定向,只需自己构建 URL。
最佳实践:使用RedirectToAction
来处理与应用程序操作/ Controller 有关的任何事情。如果您使用重定向
并提供 URL,则需要在路由表更改时显式修改这些 URL。
关于asp.net-mvc - ASP.NET MVC 中的 Redirect 和 RedirectToAction 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12198909/