2010-02-11 7 views
1

Quand utiliser GET et quand POST. Je veux masquer ma chaîne de requête sur le code comme:GET et POST dans asp.net

protected void LinkButton1_Click(object sender, EventArgs e) 
{ 
    Response.Redirect("~/Page1.aspx?mode=Create"); 
} 

Je ne veux pas afficher Créer un mot dans une chaîne de requête. Ce que je dois faire. Et comment implémenter le modèle Post/Redirect/Get. S'il vous plaît envoyez-moi le code pour cela si possible. Merci d'avoir lu. s'il vous plaît aider je suis trop confus

Répondre

2

est destiné à la récupération d'une ressource sans apporter de modifications ou d'avoir des effets secondaires, et POST est destiné à ajouter des informations à une ressource (mais ne pas créer une nouvelle ressource, ce serait un PUT). Ce ne sont que des lignes directrices et ne sont pas appliquées fonctionnellement; vous pouvez utiliser une demande POST pour récupérer une ressource et GET des demandes peuvent avoir des effets secondaires. Donc, vous pouvez mettre les informations de mode dans le corps d'une requête POST;

vous pouvez aussi faire quelque chose de simple et attribuer des valeurs numériques à vos modes, de sorte que vous aviez

Response.Redirect("~/Page1.aspx?mode=2"); 

et seul le serveur sauriez que le mode 2 est « Créer ».

Si vous voulez empêcher l'utilisateur de modifier (facilement) la valeur mode directement, alors le corps POST serait une meilleure solution que la chaîne de requête.

1

GET La méthode HTTP conserve ses variables dans sa chaîne de requête. C'est juste comme ça a été conçu. Par conséquent, si vous ne voulez pas de variables dans la chaîne de requête et que vous souhaitez envoyer ces variables au serveur, vous devrez utiliser autre chose que GET.

Maintenant, je devine que vous demandez comment vous supprimez les variables de la chaîne de requête après une requête, mais avant une redirection?

Voir http://www.west-wind.com/weblog/posts/132081.aspx Cette page contient une liste de propriétés ASP.Net qui exposent diverses informations de chemin et d'URL. Ainsi, par exemple, si vous faites un GET après le POST, il est supposé que vous ne devriez pas vraiment avoir de variables de la chaîne querys dont vous devez vous débarrasser. Et à ce titre

Response.Redirect(Request.RawUrl); 

peut faire l'affaire.

Mais Request.RawUrl inclurait une chaîne de requête s'il y en avait une. Donc, pour accéder à un chemin sans une chaîne de requête, essayez 'Request.FilePath' ou Request.CurrentExecutionFilePath avec votre Response.Redirect appel à la fin de votre traitement de publication.

Questions connexes