2009-12-21 6 views
0

Ce qui suit est l'extrait de code ce que j'essaie avec ASP.NET MVC avec l'appel ajx à Action.

Mais l'action n'appelle pas. Aidez-moi, s'il vous plaît?

$.ajax({ 
    type: "POST", 
    url: "/Sample/TestSubmit", 
    data: $.toJSON(result), 
    contentType: "application/json;charset=utf-8", 
    dataType: "json", 
     success: function(msg) { 
     var succeed = msg == 'OK'; 
     if (!succeed) { 
      alert(msg); 
     } else { 
      alert('Saved'); 
     } 
    }, 
    error: function(){ 
    alert('failed to save'); 
    } 
}); 
+0

Que signifie 'FireBug' montrer?Voyez-vous une requête ajax envoyée? Si oui, que répond le serveur? –

Répondre

0
  1. Etes-vous sûr que vous chargez la bibliothèque jquery?

  2. l'avez-vous eu lors d'un lancement de fonction global ou lancé dans le cadre d'un événement?

    $(document).ready(function(){ 
    $.ajax({ 
        type: "POST", 
        url: "/Sample/TestSubmit", 
        data: $.toJSON(result), 
        contentType: "application/json;charset=utf-8", 
        dataType: "json", 
         success: function(msg) { 
         var succeed = msg == 'OK'; 
         if (!succeed) { 
          alert(msg); 
         } else { 
          alert('Saved'); 
         } 
        }, 
        error: function(){ 
        alert('failed to save'); 
        } 
    }); 
    

    });

+0

Je pense que 'TestSubmit' est plus susceptible d'être dans un clic même que immédiatement sur DOMReady. Quoi qu'il en soit, la méthode collée ne dépend d'aucun noeud DOM –

+0

Son dans une fonction comme la fonction save() { '' '' '' '// le code que je vous ai donné avant } – Yaswanth

+0

Comme le code est juste pour tester , J'ai donné le nom comme TestSubmit. Eventhough, quel que soit le nom à l'intérieur de controlle (à l'exception des mots-clés C#), il doit fonctionner. – Yaswanth

0

désolé amis. ce qui suit est le code complet

function save() { fonction TestData (code, texte) { this.Qcode = code; this.Qtext = text; } function TestDataArray (testArray) { this.TestArray = testArray; } var testArr = new Array();

$ ('# des questions tr'). Chacune (fonction (ligne, rowItem) {

testArr [testArr.length] = new TestData ('Qcode', $ (rowItem.cells [1]). text());

});

var résultat = nouveau TestDataArray (testArr);

.ajax $ ({

type: "POST", 

    url: "/Sample/TestSubmit", 

    data: ""+$.toJSON(result), 

    contentType: "application/json;charset=utf-8", 

    dataType: "json", 

     success: function(msg) { 

     var succeed = msg == 'OK'; 

     if (!succeed) { 
      alert(msg); 
     } else { 
      alert('Saved'); 
     } 
    }, 
    error: function(){ 
    alert('failed to save'); 
    } 
}); 

}

. Et mon problème était contrôleur ne demande pas cela signifie que mon TestSubmit d'action.

Ceci est parce que je dois ajouter jquery.json -2.2.js fichier à ma page aspx pour obtenir le travail toJSON() et maintenant le contrôleur appelle l'action

0

Nous n'avons vraiment pas beaucoup d'informations ici. Erreur de syntaxe d'iate dans la partie du code que vous avez montrée, donc nous n'avons rien à signaler si vous ne nous fournissez pas plus d'informations.

Mon pari est que l'erreur est l'un des éléments suivants, mais de ce que nous avons, je ne peux pas juger de leur vraisemblance relative:

  • save est jamais exécutée. un sélecteur incorrect liant un événement, peut-être, ou la liaison en cours d'exécution avant que tout ce qui est connecté est disponible dans le DOM?
  • le code qui renseigne response a une erreur, ce qui provoque l'exécution de la fonction save pour arrêter
  • response dans $.toJSON(response) est non défini
+0

ouais exactement la 3ème raison que vous pensiez. C'est parce que je n'ai pas ajouté jquery.json-2.2.js dans ma page aspx pour faire référence à la fonction JSON(). Et désolé, je suis nouveau à ce type de forums, c'est pourquoi n'a pas ajouté les détails de mon code. – Yaswanth

+0

pas de soucis, heureux que vous l'ayez réglé à la fin –

Questions connexes