What is the difference between Redirect and RedirectToAction in ASP.NET MVC?

asp.net Mvc

asp.net Mvc Problem Overview


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 https://stackoverflow.com/questions/6477253/confusion-between-redirect-and-redirecttoaction, but, to me, it looks like the answer is more specific towards handling id parameter and returning proper view.

asp.net Mvc Solutions


Solution 1 - asp.net Mvc

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:

  1. You can use RedirectToAction("Index", "Home", new { id = 5 }) which will generate the URL for you based on your route table.

  2. You can use Redirect but must construct the URL yourself, so you pass Redirect("/Home/Index/5") or however your route table works.

  3. 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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questiongmail userView Question on Stackoverflow
Solution 1 - asp.net MvcOmarView Answer on Stackoverflow