2010-11-14 29 views
2

J'ai un gestionnaire HTTP ASP.NET 4.0 qui doit recevoir et envoyer des données au format json. J'utilise jquery pour envoyer des objets json sérialisés dans une chaîne au gestionnaire. Il envoie correctement la demande mais je ne sais pas comment je pourrais récupérer les données du httpcontext transmis au gestionnaire et comment je pourrais le désérialiser ... Quelqu'un peut-il m'aider?Envoyer des données JSON au gestionnaire HTTP ASP.NET

MISE À JOUR 1

$.ajax({ 
    type: "POST", 
    url: "myurl.ashx", 
    dataType: "json", 
    contentType: "application/json; charset=utf-8", 
    data: $.toJSON({ 
     ... 
    }), 
    success: function (response) { 
     ... 
    } 
}); 
+0

Je ne sais pas le plugin toJSON, mais ce que je sais est que les données attend un objet paire clé/valeur où la clé est ce que vous demanderez à la collection Forms. Donc je suppose que la question est de savoir ce que retourne votre appel $ .ToSJON. –

Répondre

3

-vous d'envoyer les données à partir jquery comme POST ou GET demande? Dans votre gestionnaire Http, vous pouvez récupérer les valeurs à travers le HttpContext.Request soit par Forms ou QueryString

soit. string json = HttpContext.Current.Request.Forms["json"];

désérialiser vous pouvez utiliser le construit en System.Web.Script.Serialization.JavaScriptSerializer classe comme celui-ci

string json = HttpContext.Current.Request.Forms["json"]; 
var js = new JavaScriptSerializer(); 
YourType obj = js.Deserialize<YourType>(json); 
+0

J'envoie les données sous la forme d'une requête POST ... si cela peut aider, j'essaye de faire un serveur de comète C# très simple implémenté sur le protocole bayeux. Je ne sais pas si dans ce cas il est préférable d'envoyer les données en tant que requête GET mais de toute façon dans la collection Request.Form il y a 0 items – Stefano

+0

Si vous envoyez en POST la collection Forms ne devrait pas être nulle. A quoi ressemble votre code jquery? –

+0

J'ai mis à jour ma réponse avec le code jquery – Stefano