Quelle est la différence entre Redirect et RedirectToAction dans ASP.NET MVC?

Quelle est la différence entre Redirect et RedirectToAction autre que leur type de retour? Quand utilisons-nous chacun? L’explication avec n’importe quel scénario réel m’aiderait grandement.

Je regardais Confusion entre Redirect et RedirectToAction , mais pour moi, il semble que la réponse soit plus spécifique en ce qui concerne la gestion du paramètre id et le retour de la vue.

RedirectToAction vous permet de construire une URL de redirection vers une action / un contrôleur spécifique dans votre application, c’est-à-dire qu’elle utilisera la table de routage pour générer l’URL correcte.

Redirect nécessite que vous fournissiez une URL complète à redirect.

Si vous avez une action Index sur le contrôleur Home avec le paramètre Id :

  1. Vous pouvez utiliser RedirectToAction("Index", "Home", new { id = 5 }) qui générera l’URL correspondant à votre table de routage.

  2. Vous pouvez utiliser la Redirect mais vous devez créer l’URL vous-même, afin que vous passiez la Redirect("/Home/Index/5") ou que votre table de routage fonctionne.

  3. Vous ne pouvez pas redirect vers google.com (une URL externe) à l’aide de RedirectToAction , vous devez utiliser la Redirect .

RedirectToAction est conçu pour effectuer des redirections 302 dans votre application et vous permet de travailler plus facilement avec votre table de routage.

Redirect est destiné à faire des redirections 302 vers tout le rest, en particulier les URL externes, mais vous pouvez toujours redirect dans votre application, il vous suffit de construire les URL vous-même.

Meilleures pratiques: Utilisez RedirectToAction pour tout ce qui concerne les actions / contrôleurs de votre application. Si vous utilisez la Redirect et fournissez l’URL, vous devrez modifier ces URL manuellement lorsque votre table de routage sera modifiée.