IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Response.Redirect() ne fonctionne pas


Sujet :

ASP.NET

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 21
    Points : 7
    Points
    7
    Par défaut Response.Redirect() ne fonctionne pas
    Bonjour,

    Je rencontre ce problème sur plusieurs pages de mon application : Response.Redirect() ne fonctionne pas. Cependant, ce n'est vrai que dans certains cas spécifiques.

    Par exemple, dans mon Page_Load, je souhaite exécuter une méthode suite à la récupération d'un paramètre passé par url.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If (String.IsNullOrEmpty(Request.QueryString("param")) = False) Then
         MaMethode(Request.QueryString("param"))
         Response.Redirect("page.aspx")
    End If
    Dans ce cas précis, la redirection ne fonctionne pas. J'ai essayé de mettre le deuxième paramètre de la méthode Redirect à False, mais rien n'y fait.

    De même, après l'appel de cette première méthode, je fais appel à une seconde méthode censée rafraichir les données d'un tableau suite à la modification effectuée sur la base via l'appel de la première méthode. En passant en mode debug, je constate que cette seconde méthode est bien appelée, mais les modifications ne sont pas répercutées sur ma page. Je précise que la première méthode s'éxécute correctement.

    Au final, j'ai un peu l'impression que l'exécution de la page "se bloque" et je ne sais absolument pas d'où cela peut venir.

    Avez-vous une idée ?

    Merci d'avance.

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2010
    Messages : 86
    Points : 75
    Points
    75
    Par défaut
    Si ton "tableau" est un DataGridView, cela peut venir d'un problème de .Bind() ce qui fait que les mises à jour ne se font pas.

    Pour ton premier problème, si tu met un point d'arrêt sur le bloc IF est-ce qu'il rentre dedans ?

    Car ta condition peut etre fausse (mauvaises traduction du besoin)
    N'oublie pas également qu'on rentre qu'une seul fois dans le Page_Load (peut-etre ton soucis) et qu'un rafraichissement de la page ne suffit pas (enfin il me semble) et dernière chose

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If (String.IsNullOrEmpty(Request.QueryString("param")) = False) Then
    equivalent a

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If (String.IsNullOrEmpty(Request.QueryString("param")) Then
    Bonne journée :-)

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 21
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Rhend Voir le message
    Si ton "tableau" est un DataGridView, cela peut venir d'un problème de .Bind() ce qui fait que les mises à jour ne se font pas.
    Non, rien à voir. Il s'agit d'un simple tableau composé de contrôles TableRow et TableCell.

    Citation Envoyé par Rhend Voir le message
    Pour ton premier problème, si tu met un point d'arrêt sur le bloc IF est-ce qu'il rentre dedans ?
    Oui.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If (String.IsNullOrEmpty(Request.QueryString("param")) = False) Then
    equivalent a

    Citation Envoyé par Rhend Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If (String.IsNullOrEmpty(Request.QueryString("param")) Then
    La valeur testée par défaut dans une condition If est toujours "True", donc ce n'est pas du tout la même chose.
    Dans le premier cas la condition sera validée si le paramètre n'est ni null ni vide, dans le second si le paramètre est null ou vide.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Points : 1 498
    Points
    1 498
    Par défaut
    Salut,

    Tout d'abord :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.Redirect("monRul",false);
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.Redirect("monRul");
    C'est la même chose: la redirection sera effectué à la fin du chargement de la page par le client web.

    Enfin: si tu veux arrêter brutalement sans charge complètement ta page il faut faire faire un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.Redirect("monRul",true);
    , qui lancera une exception à laisser passer.

  5. #5
    Membre éclairé
    Inscrit en
    Septembre 2007
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 137
    Points : 707
    Points
    707
    Par défaut
    essaye un Response.Redirect("~/mapage.aspx")

  6. #6
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Tu rentres bien ton if au moins?

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2010
    Messages : 86
    Points : 75
    Points
    75
    Par défaut
    Citation Envoyé par Daklum Voir le message
    La valeur testée par défaut dans une condition If est toujours "True", donc ce n'est pas du tout la même chose.
    Dans le premier cas la condition sera validée si le paramètre n'est ni null ni vide, dans le second si le paramètre est null ou vide.
    Bah je ne suis pas aller jusqu'a mettre If Not parce que ca me semblait evident dans ce que je disais Mais j'aurais du le mettre effectivement ^^

  8. #8
    Futur Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 21
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par lutecefalco Voir le message
    Tu rentres bien ton if au moins?
    Citation Envoyé par Daklum Voir le message
    1. Je précise que la première méthode s'exécute correctement.
    Citation Envoyé par Daklum Voir le message
    Citation Envoyé par Rhend Voir le message
    Pour ton premier problème, si tu met un point d'arrêt sur le bloc IF est-ce qu'il rentre dedans ?
    2. Oui.
    Comme le dit l'expression, jamais deux sans trois. Donc oui, je rentre bien dans mon "if"

    Citation Envoyé par tortuegenie Voir le message
    essaye un Response.Redirect("~/mapage.aspx")
    Je testerai ça demain au boulot. Merci

  9. #9
    Futur Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 21
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par tortuegenie Voir le message
    essaye un Response.Redirect("~/mapage.aspx")
    Cela ne change rien au problème.

  10. #10
    Futur Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 21
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Je n'ai toujours pas identifié mon problème. Si quelqu'un connait une solution, je serai ravi de l'entendre !

  11. #11
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Et ça, ça marche?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If (String.IsNullOrEmpty(Request.QueryString("param")) = False) Then Response.Redirect("page.aspx") End If

  12. #12
    Futur Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 21
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par lutecefalco Voir le message
    Et ça, ça marche?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If (String.IsNullOrEmpty(Request.QueryString("param")) = False) Then Response.Redirect("page.aspx") End If
    Merci pour ta réponse lutecefalco.

    Par contre, je ne vois pas la différence entre ton code et celui que j'ai déjà écris. J'ai tout de même testé, mais non, cela ne résoud malheureusement pas mon problème.

  13. #13
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 148
    Points : 291
    Points
    291
    Par défaut
    essaye d'enlever ton if (passe le en commentaire), laisse juste le Response.Redirect("page.aspx") et regarde ce qu'il se passe (c'est juste pour tester).

  14. #14
    Futur Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 21
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par playfone Voir le message
    essaye d'enlever ton if (passe le en commentaire), laisse juste le Response.Redirect("page.aspx") et regarde ce qu'il se passe (c'est juste pour tester).
    La redirection s'effectue correctement dans ce cas.

  15. #15
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 148
    Points : 291
    Points
    291
    Par défaut
    Donc le problème vient de ton if

  16. #16
    Futur Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 21
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par playfone Voir le message
    Donc le problème vient de ton if
    Sans vouloir te vexer, je le savais déjà depuis le début ça J'essaye justement de savoir pourquoi un tel problème existe.

    Quoi qu'il en soit, j'ai contourné le problème en modifiant un peu mon code. Du coup je n'ai plus forcément besoin de la réponse. Toujours est-il que si quelqu'un la possède, je veux bien l'entendre.

    Merci à tous pour vos réponses.

  17. #17
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Citation Envoyé par Daklum Voir le message
    Sans vouloir te vexer, je le savais déjà depuis le début ça J'essaye justement de savoir pourquoi un tel problème existe.
    Pardon? Depuis le début, tu dis que tu passes bien dans ton If ...

  18. #18
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2010
    Messages : 86
    Points : 75
    Points
    75
    Par défaut
    Alors la tu viens de me paumer complet ...

    Quand on te demande si, via un point d'arret, tu passes bien dans ton IF tu nous réponds oui mais ton response.redirect() ne fonctionne pas.

    Et quand on te demande de mettre ton IF en commentaire, alors ton response.redirect() fonctionne ...

    Sachant qu'un bloc IF n'impacte en rien sur les lignes de codes qu'elle comprend (hormis bien sur le fait que ca aille dedans ou non je suis bien d'accord) j'aurais tendance à penser que tu ne passes pas dans ton IF.

    Et si vraiment tu rentres vraiment dans ton IF et bien inverse ton bloc IF c'est à dire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If (String.IsNullOrEmpty(Request.QueryString("param")) = true) Then
         else
               MaMethode(Request.QueryString("param"))
               Response.Redirect("page.aspx")
    End if
    Peu de chance que ca change quelque chose mais des fois la magie du code fait sont office

  19. #19
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 148
    Points : 291
    Points
    291
    Par défaut
    Citation Envoyé par Daklum Voir le message
    Comme le dit l'expression, jamais deux sans trois. Donc oui, je rentre bien dans mon "if"



    Je testerai ça demain au boulot. Merci


  20. #20
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2010
    Messages : 86
    Points : 75
    Points
    75
    Par défaut
    Ben oui mais si quand il met sont if en commentaire le response se fait et quand il est plus en commentaire cela se fait plus, dur de croire qu'il rentre dans son if

Discussions similaires

  1. [PHP 5.2] La redirection ne fonctionne pas
    Par beegees dans le forum Langage
    Réponses: 1
    Dernier message: 17/05/2009, 20h39
  2. [URL rewriting] la redirection ne fonctionne pas
    Par jobo13 dans le forum Apache
    Réponses: 2
    Dernier message: 08/03/2009, 18h51
  3. redirections ne fonctionne pas
    Par Invité dans le forum Langage
    Réponses: 4
    Dernier message: 22/09/2006, 10h05
  4. [CSV] Redirection ne fonctionne pas
    Par Brizzio dans le forum Langage
    Réponses: 12
    Dernier message: 16/12/2005, 10h55
  5. [DOS] Redirection ne fonctionne pas
    Par Pedro dans le forum Langage
    Réponses: 15
    Dernier message: 13/06/2005, 08h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo