2010-06-19 6 views
2

cela doit être une question de débutant.Comment transmettre des données à JsonResult dans ASP.NET MVC?

J'ai cette méthode dans un contrôleur:

public JsonResult GetUpdates(string lastChatMessage) 
{ 
    var json = Json(new {lastModeratorAction = -1}); 
    return json; 
} 

Je demande avec .ajax $ ou .getJSON $ de Javascript. La méthode est appelée mais il y a une exception quelque part. Si j'utilise $ .ajax, je définis un callback "error" et il me dit que l'état de XmlHttpRequest est "error". Le message d'erreur est "indéfini".

Si je retourne "null" de la méthode ci-dessus, cela fonctionne très bien. Il existe probablement une exception lors de la sérialisation JSON. Des indices?

Répondre

3

Si vous utilisez un GET pour envoyer la requête, vous devez indiquer qu'il est acceptable de renvoyer un JsonResult.

return Json(new { lastModeratorAction = -1 }, JsonRequestBehavior.AllowGet); 
+0

Wow, merci beaucoup! J'ai vu beaucoup d'exemples mais aucun n'a comporté le truc de AllowGet. Maintenant, cela fonctionne comme un charme. – Sparhawk

+1

@sparhawk - ceci a été ajouté dans MVC2 en raison de la possibilité de détourner une réponse json à une requête GET en remplaçant la méthode '__defineSetter__' du prototype de l'objet. Voir l'article de Phil Haack: http://haacked.com/archive/2009/06/25/json-hijacking.aspx – tvanfosson

Questions connexes