2010-11-14 68 views
2

我有一个ASP.NET 4.0 HTTP处理程序,它应该以json格式接收和发送数据。我正在使用jQuery将串行化的json对象发送到处理程序。它正确地发送请求,但我不知道我怎么可以从传递给处理程序的httpcontext中检索数据以及我如何反序列化它...有人可以帮助我吗?发送JSON数据到ASP.NET HTTP处理程序

更新1

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

我不知道的toJSON插件,但我知道那是什么数据需要一个键/值对的对象,其中的关键是你会从Forms集合请求什么。所以我想这个问题是知道的,你的$ .ToSJON调用返回什么。 – 2010-11-14 22:16:02

回答

3

你从jQuery的发送数据作为POST或GET请求?在您的Http处理程序中,您可以通过HttpContext.Request通过FormsQueryString

检索值。 string json = HttpContext.Current.Request.Forms["json"];

反序列化,你可以使用内置的System.Web.Script.Serialization.JavaScriptSerializer类这样

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

我发送数据作为POST请求...如果它可以帮助,我试图做一个非常简单的彗星C#服务器实现了巴可协议。我不知道在这种情况下,最好是将数据作为GET请求发送,但无论如何,在Request.Form集合中有0项 – Stefano 2010-11-14 13:41:48

+0

如果您以POST的形式发送,Forms-collection不应该为空。你的jQuery代码是怎样的? – 2010-11-14 17:29:40

+0

我已经用jQuery代码更新了我的答案 – Stefano 2010-11-14 19:39:43