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 dans une fonction dans une classe


Sujet :

ASP.NET

Vue hybride

jpower Response.Redirect dans une... 21/08/2007, 23h02
LaChips bonjour, Comment ca il ne... 22/08/2007, 00h20
zooffy Si je comprend bien tu as... 22/08/2007, 09h38
jpower sooffy tu es vraiment une... 22/08/2007, 13h47
jpower Bon ca marche par certain cas... 22/08/2007, 13h53
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 64
    Par défaut Response.Redirect dans une fonction dans une classe
    Bon je me suis fait une classe dans laquelle j'ai essayer de mettre ma fonction de déconnexion mais je ne suis pas en mesure d'utiliser :

    Response.Redirect(Request.UrlReferrer.ToString())

    Il me dit qu'il ne connait pas Response ...

    Qu'est-ce que je doit faire ?

  2. #2
    Membre Expert Avatar de LaChips
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 109
    Par défaut
    bonjour,
    Comment ca il ne connais pas Response?
    tu peux nous fournir le nom exacte de l'erreur et l'emplacement de ta ligne de code dans ta page

  3. #3
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Si je comprend bien tu as fait une classe externe qui contient une fonction qui veut faire un Response.Redirect.

    Dans ce contexte, le Reponse ne fonctionne pas, tout simplement parce que ta classe ne fait pas partie de la page.
    Alors deux possiblités :
    - tu mets ta fonction dans le codeBehind de la page, mais vu les paramttre que tu lui envoi, tu dois avoir de cette fonction partout
    - tu fais en sorte de rappeller le contexte

    Pour ce dernier point, mais je suis pas trés calé en cette matière précise, il faut que tu puisse lui renvoyer les paramettre de contexte.
    Soit tu fabrique le paramettre avant d'appeler ta fonction, peut être que ce n'est pas possible en focntion de l'architecture de ton code.
    Soit tu rappelle le contexte et tu l'exploite dans ta classe externe.

    Par exemple, j'ai eu ce genre de souci pour gérer la vérification de la connexion d'un utilisteur avec un fonction de ce type dans tout les pages.
    Dans ma fonciton j'ai mis un truc comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim ohttpcontext As HttpContext = HttpContext.Current
    A partir de là tu recrée le contexte de navigation dans ta fonction. tu peux accéder à plein de truc, comme si tu étais dans la page.

    Pour la suite, faut que tu farfouille dans la MSDN.

    Kenavo

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 64
    Par défaut
    sooffy tu es vraiment une bête !

    Merci encore une fois

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 64
    Par défaut
    Bon ca marche par certain cas et d'autre non .... je reçois l'erreur suivante :

    Détails de l'exception: System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.

    Erreur source:

    Ligne 44 : Dim ohttpcontext As HttpContext = HttpContext.Current
    Ligne 45 : ohttpcontext.Response.Redirect(ohttpcontext.Request.UrlReferrer.ToString())
    Ligne 46 : End Function
    Ligne 47 :


  6. #6
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    un Z à Zooffy, s'il vous plait.....

    Bon, je crois que j'ai oublié un truc, comme quoi, je suis pas une bête tant que ça.

    Il ne faut aps oublié que le contexte peut être vide dans certains cas, donc il faut le tester d'abords.

    Par exemple, dans ma petit fonction de vérification de connection je fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim ohttpcontext As HttpContext = HttpContext.Current
    If ohttpcontext.Profile.UserName = "" Then
    	ohttpcontext.Response.Redirect("~/Login/login.aspx?mess=" & Message & "&page=" & PageRetour)
    End If
    Je test d'abords l'existence du Username dans le contexte, Parce que si le gars est authetifié il à pas besoins d'être redirigé.

    Dans ton gars il faut que tu test l'existence d'un Referer. Si le gars à tapper l'URL directe, ben il a pas de referer, donc tu ne peut pas le renvoyer à "nulle part".

    Moi, j'essaierais un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim ohttpcontext As HttpContext = HttpContext.Current
    If ohttpcontext.Request.UrlReferrer.ToString() = "" Then
         ohttpcontext.Response.Redirect("un truc que tu veux")
    else
         ohttpcontext.Response.Redirect(ohttpcontext.Request.UrlReferrer.ToString())
    End If
    Avec ce genre de chose, tu devrais pouvoir t'en sortir.
    Peut être même qu'on peut tester autre chose sur UrlReferer qui remonterais un True ou un False.

    Kenavo

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. récupérer une variable d'une fonction dans une classe
    Par free_dom dans le forum Général Python
    Réponses: 20
    Dernier message: 08/07/2009, 12h35
  2. Réponses: 8
    Dernier message: 10/01/2007, 21h10
  3. passer une fonction dans un parametre d'une propriété de classe
    Par CAML dans le forum Général JavaScript
    Réponses: 22
    Dernier message: 06/08/2006, 19h52
  4. Réponses: 5
    Dernier message: 09/07/2006, 18h14
  5. [VB6] Appel d'une fonction dans un module d'une dll
    Par speedster dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 05/06/2006, 17h37

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