none
Jquery : appeler une méthode du code behind. RRS feed

  • Discussion générale

  • Bonjour,

    je souhaite exécuter enjquery une méthode présente dans le code behind de ma page. 

    La méthode du code behind est :

    [WebMethod]
        public static string Logout_Click()
        {
            Session["IsLogged"] = false;
        }

    et l'appel en Jquery sur ma page est :

    var loc = window.location.href;
        $('#logoutlink').on('click', function () {
            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: loc + "Logout_Click",
                data: "{}",
                dataType: "JSON",
                context: document.body
                })
    
            success(function (response) {
                    alert(response);
    
            });
        });

    mais cela ne fonctionne pas.

    Auriez-vous une idée?

    Merci pour votre aide.

    • Type modifié Aurel Bera mardi 10 juin 2014 05:53 disc
    lundi 2 juin 2014 20:15

Toutes les réponses

  • Bonjour

    Si vous faites un

    var loc = window.location.href;
        $
    ('#logoutlink').on('click', function () {
        alert (
    loc + "Logout_Click");

    Qu'est qu'il affiche?

    Bien cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mardi 3 juin 2014 07:40
  • Bonjour merci pour votre réponse,

    ceci me retourne bien http://localohost:14999/Default.aspx/Logout_Click, mais au final je ne rentre jamais dans la méthode Logout_Click.

    var loc = window.location.href;
        $('#logoutlink').on('click', function () {
        alert (loc + "Logout_Click");

    Merci

    mardi 3 juin 2014 19:00
  • Je vois quelques possibles soucies :

    1. le loc + "Logout_Click" le plus probable donne  http://localohost:14999/Default.aspxLogout_Click et pas un
     http://localohost:14999/Default.aspx/Logout_Click - il manqué le dernier "/"

    2. la sintaxe n'est  pas bonne - "success" est  compris dans $.ajax(

    Je vous propose ce code :

    var loc = window.location.href;
        $('#logoutlink').on('click', function () {
            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: loc + "/Logout_Click",
                data: "{}",
                dataType: "JSON",
                context: document.body,
    	
    	        success : function (response) {
                    alert(response);
                }
    
    
            });
        });

    Bien cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.


    mercredi 4 juin 2014 06:23
  • Bonjour,

    j'ai essayé le code proposé, mais je ne rentre toujours pas dans ma méthode. De plus l'url ne correspond pas à 

    http://localhost:1949/Default.aspx/Logout_Click. Et si j'écris cette url moi même ma fonction ne s'exécute toujours pas.

    Le code que j'ai utilisé est donc :

    var loc = window.location.href;
        var Url = loc + '/Logout_Click';
        alert(Url);
        $('#logoutlink').on('click', function () {
            $.ajax({
                type: 'POST',
                contentType: 'application/json; charset=utf-8',
                url: Url,
                data: '{}',
                dataType: 'JSON',
                context: document.body,
                success: function (response) {
                    alert(response);
                }
            });
        });

    et la méthode est toujours:

    [WebMethod]
        public string Logout_Click()
        {
            Session["IsLogged"] = false;
            return "ok";
        }

    Merci pour votre aide !

    mercredi 4 juin 2014 20:17
  • J'ai fait un petit teste, et la fonction  Logout_Click() n'est pas  exécuté même si écrit dans l'explorateur directement http://localohost:14999/Default.aspx/Logout_Click.
    Cela m'indique que les méthodes de la page sont exécutes en avant.
    Pourquoi vous n’utilisez pas l'évènement onClick d'un bouton ? \
    Sinon la solution sera de créer un WebService dans un fichier asmx et l'utiliser comme ça. 

    Bien cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    jeudi 5 juin 2014 12:26