2011-05-08 2 views
3

J'ai passé beaucoup de temps à regarder cela et je ne vois pas ce qui ne va pas. J'ai ce qui suit:

$.getJSON(
       '/adminStatus/GetJsonData', 
       { name: $('#textSearch')[0].value }, 
       function (data) { 
        alert("3"); 
//     $('#studentList > div').remove(); 
//     for (s in data) { 
//      alert("4"); 
//      var student = data[s]; 
//      $('#studentList').append('<div>(' + student.StudentId + ') ' + student.FirstName + ' ' + student.LastName + '</div>'); 
//     } 
       } 
      ); 

Ce code déclenche une action dans mon contrôleur et cette action renvoie des données. Il est en fait le code d'un autre exemple:

public JsonResult GetJsonData(string name) 
     { 
      return new JsonResult 
      { 
       Data = (from student in Student.GetStudentDataList() 
         where student.LastName.StartsWith(name) 
         select student).ToArray<Student>() 
      }; 
     } 

Je vérifie et données devient avec des données.

Cependant, rien ne se passe avec les données de retour et lorsque j'ai ajouté des commentaires, je n'arrive même pas à faire apparaître l'alerte ("3"). Est-ce que je fais quelque chose de vraiment manifestement faux? Je pense que je copie un exemple de travail mais rien ne semble être retourné et la fonction (data) {} ne semble pas s'exécuter.

Toute aide serait grandement appréciée.

Merci,

+0

Vous avez des erreurs JavaScript sur la page? Avez-vous exécuté votre code via http://jslint.com pour vérifier les erreurs? –

Répondre

11

Il serait préférable de vérifier dans quelque chose comme Firebug pour voir s'il y a des erreurs qui se produisent. Essayer de dépanner sans savoir exactement ce qui se passe va mener à plus de frustration. Une chose que je vois être un problème potentiel est que vous n'avez pas JsonRequestBehavior.AllowGet ensemble, donc vous pourriez obtenir une erreur de serveur. Pour voir si c'est le cas, vous pouvez modifier votre déclaration comme suit:

var data = (from student in Student.GetStudentDataList() 
      where student.LastName.StartsWith(name) 
      select student).ToArray<Student>(); 

return Json(data, JsonRequestBehavior.AllowGet); 
+0

Ouais - ne pas avoir JsonRequestBehavior.AllowGet avec MVC3 va être un problème –

1

Lors du débogage ce genre de problème, fiddler est le meilleur outil car il est toujours vous montrer ce qui est sous le capot.