2009-11-30 8 views
0

J'essaie actuellement de récupérer une liste d'objets de ma base de données en utilisant jQuery. J'ai essayé d'utiliser getJSON mais le rappel n'est jamais déclenché. Cependant, si j'utiliseASP.NET MVC avec jQuery

$.post(url, data, callback)

... il semble tirer très bien.

Mes actions du régulateur est donc:

public ActionResult GetTemplates() 
{ 
    IEnumerable<Template> templates = TemplateDAO.GetTemplates(); 
    List<TemplateViewModel> jsonTemplates = new List<TemplateViewModel>(); 

    foreach(Template t in templates) 
    { 
     TemplateViewModel tvm = new TemplateViewModel(t.ID, t.TemplateName); 
     jsonTemplates.Add(tvm); 
    } 

    return Json(jsonTemplates.ToList()); 

} 

et TemplateViewModel est:

public class TemplateViewModel 
{ 
    public int ID {get; set; } 
    public string TemplateName {get; set; } 
} 

Le javascript que je tente d'utiliser est:

function LoadTemplates() { 
     alert("loading templates"); 
     var url = '<%= Url.Action("GetTemplates", "Project") %>'; 

     $.getJSON(url, null, function(data) { 
      alert("Succeeded" + data); 
     }); 

    } 

Ce javascript ne pas afficher l'alerte "Réussi" pour une raison quelconque, tandis que remplacer l'appel getJSON par

$ .post (url, null, updateTemplates, 'json');

fonctionne.

Des idées?

C'est plus une curiosité maintenant que $ .post fonctionne, mais j'aimerais savoir ce que je fais de mal, car chaque exemple que j'ai vu ressemble exactement au mien!

Cheers,

Chris

Répondre

2

Essayez ceci:

return Json(jsonTemplates.ToList(), JsonRequestBehavior.AllowGet); 
+0

Cheers, qui semblaient travailler :-) se demander pourquoi il ne fonctionne pas sans la demande du comportement .... – Chris