2010-10-07 6 views
0

Je fais un appel JSON à la méthode web qui est définie dans le code derrière. La méthode web renvoie un objet de classe. La classe renvoie 3 propriétés, une de type list et 2 entiers. Je l'accès à ces de la manière suivante:AJAX JSON Appel erreur lors de la tentative d'accès aux propriétés de la classe

success: function(result) { 
        alert(result); 
        alert(result.LookCount); 
        alert(result.length); 
        if(result.LookCount > 0) 
        { 
         var Info = ""; 

         for(var i = 0;i < result.LookUps.length; i++) 
         { 
          Info += CreateLookUpGrid(result.LookUps[i].Client,result.LookUps[i].ClientOrg); 
         } 

alerte (result.LookCount) -> Alertes non défini et quand je alerte résultat, il me montre la chaîne de résultat compelte qui a toutes les données. Ainsi, les données sont renvoyées correctement par la méthode Web. Mais je suis incapable d'y accéder.

Répondre

1

Vous devez convertir la chaîne de résultats en un objet. Si vous utilisez la dernière version de jQuery, vous pouvez utiliser la méthode parseJSON:

var data= $.parseJSON(result); 
if (data.LookCount > 0) { 
    ... 
} 
0

Probablement, vous devez utiliser result.d au lieu de result. ASP.NET essaie d'implémenter une certaine sécurité en enveloppant l'objet JSON dans une propriété "d" afin que rien ne soit accidentellement évalué et exécuté sur le client.

Si vous faites quelque chose qui renvoie une chaîne (comme votre message l'indique lors de la description des résultats de l'alerte), vous devez analyser la chaîne dans un objet JSON. Vous pouvez le faire avec JQuery, ou un autre fichier javascript comme JSON2.

Questions connexes