What is the difference between Redirect
and RedirectToAction
other than their return type? When do we use each? Explanation with any real life scenario would help me greatly.
I was looking at Confusion between Redirect and RedirectToAction, but, to me, it looks like the answer is more specific towards handling id
parameter and returning proper view.
Return View doesn't make a new requests, it just renders the view without changing URLs in the browser's address bar. Return RedirectToAction makes a new request and the URL in the browser's address bar is updated with the generated URL by MVC.
The RedirectToAction() method makes new requests and URL in the browser's address bar is updated with the generated URL by MVC. The Redirect() method also makes new requests and URL in the browser's address bar is updated, but you have to specify the full URL to redirect.
You can use the RedirectToAction() method, then the action you redirect to can return a View. The easiest way to do this is: return RedirectToAction("Index", model); Then in your Index method, return the view you want.
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 pass Redirect("/Home/Index/5")
or however your route table works.
You can't redirect to google.com
(an external URL) using RedirectToAction
, you must use Redirect
.
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 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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With