2012-01-15 33 views
0

我正在嘗試處理表單提交即JSONP請求服務器端。如何閱讀ashx中的JSONP

var myJSONP = new Request.JSONP({ 
     url: 'http://mysite.../handlers/FormHandler.ashx', 
     callbackKey: 'jsoncallback', 
     data: { 
      partTag: 'mtvo', 
      iod: 'hlPrice', 
      viewType: 'json', 
      results: '100', 
      query: 'ipod' 
     }, 
     onRequest: function(url){ 
      // etc 
     }, 
     onComplete: function(data){ 
      // etc 
     } 
    }).send(); 


public class FormHandler : IHttpHandler 
{ 

    public void ProcessRequest(HttpContext context) 
    { 
     string json = ?? 
     JObject j = JObject.Parse(json); 


     context.Response.ContentType = "text/json"; 
     context.Response.Write("Hello World"); 
    } 

我不知道如何在ashx中反序列化。我使用Json.Net,但是如何從上下文獲得 我是否必須使用context.Request來單獨檢索值,或者我可以直接從上下文中解碼?

感謝

回答

0

我不知道這JSONP您使用,但使用MooTools的Request.JSON,數據在context.Request.Form交付:

?context.Request.Form.ToString() 
"partTag=mtvo&iod=hlPrice&viewType=json&results=100&query=ipod" 

這樣你就可以訪問每一個代碼的形式要素:基於此,我相信你將不得不使用表單元素來組裝對象。

0

要回答你的問題,是的,你需要使用Context.Request從客戶端讀取數據。

順便說一句。如果您可以使用REST風格的Web服務而不是實現您自己的HTTP處理程序,那麼它將變得更容易,JSON序列化和反序列化的RESTful Web服務由WCF框架處理。

+0

歡迎您的幫助 – MikeW 2012-01-16 03:13:56