2010-11-14 65 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