Quelle est la différence entre et
?
- Quels sont les avantages et les inconvénients de chacun ?
- Quand est-on appropriées sur l’autre ?
- Quand est un pas approprié ?
Quelle est la différence entre et
?
Response.Redirect envoie simplement un message vers le bas pour le navigateur (HTTP 302) .
Server.Transfer arrive sans les connaître quoi que ce soit du navigateur, le navigateur demande une page, mais le serveur retourne le contenu d’un autre.
``vous enverra vers une nouvelle page, mettez à jour la barre d’adresse et l’ajouter à l’historique du navigateur. Votre navigateur vous pouvez cliquer sur retour.
``ne change pas l’adresse bar, vous ne pouvez pas riposter.
Je vais utiliser `` quand je ne veux pas l’utilisateur de voir où je vais. Parfois sur un « chargement » de type page.
Sinon, je vais utiliser toujours `` .
Pour être Bref: Response.Redirect
indique simplement le navigateur pour visiter une autre page. Server.Transfer
permet de réduire les demandes de serveur, garde l'URL de la même et, avec un peu de bug-bashing, vous permet de transférer de la chaîne de requête et de forme variables.
Chose que j'ai trouvé et d'accord avec (source):
Server.Transfer
est similaire en ce qu'elle renvoie l'utilisateur vers une autre page avec une instruction telle queServer.Transfer("WebForm2.aspx")
. Cependant, la déclaration a un certain nombre d'avantages et d'inconvénients.Tout d'abord, le transfert vers une autre page à l'aide d'
Server.Transfer
préserve les ressources du serveur. Au lieu de dire que le navigateur redirection, il modifie simplement le "focus" sur le serveur Web et les transferts de la demande. Cela signifie que vous n'obtenez pas tout à fait autant de HTTP les demandes à venir à travers, ce qui soulage la pression sur votre Serveur Web et votre vitesse d'exécution des applications.Mais attention: parce que le "transfert" le processus peut travailler uniquement sur les les sites en cours d'exécution sur le serveur; vous ne pouvez pas utiliser
Server.Transfer
envoyer l'utilisateur vers un site externe. SeulementResponse.Redirect
peut le faire.Deuxièmement,
Server.Transfer
conserve l'original de l'URL dans le navigateur. Cela peut vraiment aider à rationaliser les données techniques d'entrée, même si elle peut faire de confusion lors du débogage.Ce n'est pas tout: L'
Server.Transfer
méthode a aussi une deuxième le paramètre"preserveForm". Si vous affectezTrue
, à l'aide d'une instruction comme l'Server.Transfer("WebForm2.aspx", True)
, la requête existante chaîne et de toute forme de variables seront toujours disponibles à la page que vous transférez.Par exemple, si votre WebForm1.aspx dispose d'un contrôle de zone de texte appelée TextBox1 et vous avez transféré à WebForm2.aspx avec le preserveForm paramètre est défini sur True, vous seriez en mesure de récupérer la valeur de la page originale contrôle de zone de texte par le référencement
Request.Form("TextBox1")
.
Response.Redirect()
doit être utilisée lorsque:
Server.Transfer()
doit être utilisée lorsque:
Pour trouver des informations plus détaillées à ce sujet, vous pouvez visiter aspdotnetfaq.
Response.Redirect page de redirection vers une autre page après première page arrive au client. Si le client sait la redirection.
Server.Transfer stoppe l’exécution courante de la page. Client ne connaît pas la redirection. Il vous permet de transférer les variables de chaîne et formulaire de requête.
Donc, cela dépend de vos besoins pour choisir quel est le meilleur.
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.