2009-09-22 5 views
0

J'ai un problème étrange avec un Response.Redirect. J'utilise VB.NET avec le framework .NET 2 (donc VS2005 & SP1).Problème avec response.redirect envoi HTTPMethod incorrect

J'ai une page sur laquelle je soumets un formulaire (c'est une bonne forme de méthode = "POST" codée en dur sur la page) et qui me renvoie correctement les données de la page qui sont ensuite traitées. Dans le cadre de ce traitement, le système détermine si nous devons être envoyés à une autre URL une fois le traitement terminé. Donc le request.httpmethod = "POST".

Donc, si le paramètre "GotoPage" a une URL spécifiée, nous faisons ensuite un response.redirect (URL, false). (Faux car nous voulons que le traitement de la page se termine afin d'écrire des journaux de synchronisation, etc.).

La page redirige correctement mais à la place de la réponse ayant un "GET" comme request.httpmethod il a un "POST" à la place! Maintenant, nous utilisons notre propre framework personnalisé pour que nous utilisions la méthode HTTPRequest afin de déterminer si une page a été postée ou si elle est "gachée" donc la propriété "IsPagePostBack" ne fonctionne pas (cela ne fonctionne que lorsque vous utilisez les contrôles .NET normaux et les soumissions de formulaire). Dans tous les autres cas, notre code fonctionne heureusement, mais qu'est-ce qui pourrait causer que Request.httpMethod ne soit pas réglé correctement? J'ai essayé de faire un response.clear avant la redirection dans les cas où les en-têtes sont écrits avant la main mais en vain.

Des indices?!

merci, Andy

Répondre

0

Que diriez-vous d'essayer de dégager les en-têtes, puis en ajoutant celui que vous voulez? Je pense que "GET" est 304?

response.clearheaders 
response.appendheader("GET", 304) 
response.redirect(...) 

lien vers response.appendheader sur MSDN.

Questions connexes