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 MVC Discussion :

Problème de redirection après Ajax


Sujet :

ASP.NET MVC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 236
    Par défaut Problème de redirection après Ajax
    Bonjour,

    J'ai une procédure simple permettant de déconnecter un utilisateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public ActionResult Deconnexion(string synchro)
            {
                [...]
                HttpContext.Session.Remove("util");
                HttpContext.Session.Abandon();
                FormsAuthentication.SignOut();
                return View("Index");
            }
    Cette procédure est appelée par une Jquery UI (petit dialog oui/non permettant de mettre synchro à oui où à non) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    $("#divPopup").dialog({
            autoOpen: false, width: 340, height: 160, modal: true,
            buttons: {
                "Oui": function () {
                    $(this).dialog("destroy");
                    $("#divPopup").remove();
                    $.post("../../fr/Home/Deconnexion?synchro=oui");
                },
                Non: function () {
                    $(this).dialog("destroy");
                    $("#divPopup").remove();
                    $.post("../../fr/Home/Deconnexion?synchro=non");
                }
            }
        });
    Quand l'utilisateur clique sur oui ou non je rentre bien dans ma procédure et ma variable synchro contient bien la bonne valeur. Par contre, la vue Index n'est pas renvoyée, je reste sur la même page.

    Pour cela je suis obligé de rajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.location.href = "../../fr/Home/Index";
    dans le javascript.

    J'ai aussi essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return Redirect("../../fr/Home/Index";)
    Il repasse bien dans ma méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public ActionResult Index()
        {
             return View();
         }
    mais je reste toujours sur la même page

    Y'a-t-il un moyen de rediriger vers la page d'accueil en utilisant C# et non javascript ?

    Merci

  2. #2
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

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

    En vrac: tu fais un post 'ajax' avec jquery, pas un poste complet de ta page, du coup les response redirect coté serveur ne marcherons pas vraiment.

    Comme on le dit il faut combattre le mal par le mal:
    soit tu fais du jquery et tu l'assumes donc fait ta redirection en js.
    soit tu utilises les helpers ajax de mvc pour faire de l'ajax

    soit, troisieme solution mais couteuse en devs: tu ouvres ta modale avec jquery, et si c'est confirmé tu postes un formulaire complet (donc ta page complète).
    Pour cela: tu créé un formulaire qui comprends le bouton deconnexion. le clic sur le bouton ouvre la modal, et si modale confirmée alors il faut que tu poste ce formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    "Oui": function () {
                    $(this).dialog("destroy");
                    $("#divPopup").remove();
                    $('#buttonName').parents('form:first').submit();

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 236
    Par défaut
    soit tu utilises les helpers ajax de mvc pour faire de l'ajax
    J'aimerais bien mais comment afficher un popup côté client autre qu'en JS ?
    Ça fait que 4 mois que je développe en MVC3, je commence à bien connaitre mais pour certaines chose on est obligé d'utiliser du javascript non ? (toutes les interactions côté client et qui restent côté client)

  4. #4
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Par défaut
    Pas faux, t'es oblligé d'utiliser du js pour faire une modale.

    Du coup il ne te reste plus que la première ou troisième solution, faute de mieux.

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 236
    Par défaut
    En fait ça marche très bien avec window.location.href = ... mais je voulais essayer de voir s'il y avait une autre solution.

    Merci quand même

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

Discussions similaires

  1. [Security] Probléme de redirection apres login erreur 404
    Par amadoulamine1 dans le forum Spring
    Réponses: 0
    Dernier message: 24/03/2011, 18h02
  2. Redirection après Ajax
    Par enila dans le forum Web
    Réponses: 0
    Dernier message: 22/09/2010, 15h36
  3. [AJAX] Redirection après Ajax qui ne fonctionne pas
    Par ingeniomatique dans le forum AJAX
    Réponses: 9
    Dernier message: 19/08/2010, 15h29
  4. [Joomla!] problème de redirection apres identification sur frontend en local
    Par dadal56 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 12/01/2010, 16h17
  5. [MySQL] problème de redirection après requête
    Par bromlecornu dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 22/05/2007, 10h17

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