RedirectToAction
lets you construct a redirect url to a specific action/controller in your application, that is, it'll use the route table to generate the correct URL.Redirect
requires that you provide a full URL to redirect to.
If you have an action
Index
on controller Home
with parameter Id
:- You can use
RedirectToAction("Index", "Home", new { id = 5 })
which will generate the URL for you based on your route table. - You can use
Redirect
but must construct the URL yourself, so you passRedirect("/Home/Index/5")
or however your route table works. - You can't redirect to
google.com
(an external URL) usingRedirectToAction
, you must useRedirect
.
RedirectToAction
is meant for doing 302 redirects within your application and gives you an easier way to work with your route table.Redirect
is meant for doing 302 redirects to everything else, specifically external URLs, but you can still redirect within your application, you just have to construct the URLs yourself.
Best Practices: Use
https://www.dotnettricks.com/learn/mvc/return-view-vs-return-redirecttoaction-vs-return-redirect-vs-return-redirecttoroute
RedirectToAction
for anything dealing with your application actions/controllers. If you use Redirect
and provide the URL, you'll need to modify those URLs manually when your route table changes.https://www.dotnettricks.com/learn/mvc/return-view-vs-return-redirecttoaction-vs-return-redirect-vs-return-redirecttoroute