89 votes

Redirect() vs RedirectPermanent() en ASP.NET MVC

Quelle est la différence entre Redirect() et RedirectPermanent() . J'avais lu quelques articles, mais je ne comprends pas quand nous devons utiliser Redirect() et RedirectPermanent() . Pouvez-vous montrer un morceau d'exemple.

158voto

Meryovi Points 1887

La différence fondamentale entre les deux est la suivante RedirectPermanent envoie au navigateur un HTTP 301 (Moved Permanently) code d'état alors que Redirect enverra un HTTP 302 code de statut.

Utilice RedirectPermanent si la ressource a été déplacée de façon permanente et ne sera plus accessible à son ancien emplacement. La plupart des navigateurs mettront cette réponse en cache et effectueront la redirection automatiquement sans avoir à redemander la ressource d'origine.

Utilice Redirect si la ressource peut être disponible au même endroit (URL) dans le futur.

Exemple

Disons que vous avez des utilisateurs dans votre système. Vous avez également la possibilité de supprimer des utilisateurs existants. Votre site Web dispose d'une ressource /user/{userid} qui affiche les détails d'un utilisateur donné. Si l'utilisateur a été supprimé, vous devez vous rediriger vers la page de l'utilisateur. /user/does-not-exist page. Dans ce cas :

Si l'utilisateur jamais être restauré à nouveau, vous devez utiliser RedirectPermanent afin que le navigateur puisse aller directement à /user/does-not-exist dans les requêtes suivantes, même si l'URL pointe vers /user/{userid} .

Si l'utilisateur est susceptible d'être restauré dans le futur, vous devez utiliser une Redirect .

17voto

dm03514 Points 20748

RedirectPermanent est 301 et Redirect est un code d'état 302

1voto

Abhishek Saha Points 11

Ils envoient des codes de réponse différents au navigateur. 301 est une redirection permanente, 302 une redirection temporaire. L'effet final est le même, mais si le client veut indexer les liens (le client le plus courant qui le fait sera les moteurs de recherche), une redirection permanente indique au client de mettre à jour ses enregistrements pour ignorer l'ancien lien et commencer à utiliser le nouveau. Une redirection temporaire indique au client que la page est redirigée pour le moment, mais qu'il ne doit pas supprimer l'ancien lien de sa base de données d'indexation.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X