2013-01-31 81 views
5

我知道有可能發送AJAX請求到.asmx頁面。而且我也知道一個.asmx頁面通過Web方法處理AJAX請求。發送AJAX請求到.aspx頁面並返回JSON

也可以發送AJAX請求到.aspx頁面嗎?如果是這樣,.aspx頁面是否也通過Web方法處理AJAX請求?請注意,我想從.aspx頁面返回JSON響應。這可能嗎?

+0

這是一個鏈接,可以幫助你http://blog.devarchive.net/2007/12/calling-page-methods-from-javascript.html –

回答

8

您可以在.aspx頁面的代碼隱藏定義Web方法,然後打電話給他們:

[WebMethod] 
public static string doSomething(int id) 
{ 
    ... 
    return "hello"; 
} 

,然後調用web方法在你的jQuery代碼中:

$.ajax({ 
    type: "POST", 
    url: "YourPage.aspx/doSomething", 
    data: "{'id':'1'}", 
    dataType: "json", 
    contentType: "application/json; charset=utf-8", 
    success: function (data) { 
     var returnedstring = data.d; 
     var jsondata = $.parseJSON(data.d);//if you want your data in json 
    } 
}); 

Here是一個很好的開始。

2

如果我正確理解問題,Aspx與HTML相同。它將被呈現爲HTML。但唯一不同的是服務器端和控件保留狀態機制。

所以你可以做jquery $.ajax()函數。

$.ajax({ 
    url: UrlToGetData, 
    dataType:'json', 
    success:function(data){ 
      //do some thing with data. 
      } 
}); 

,或者如果你想JSON值寫出來的反應,然後用Response.ContentType 第一次使用任何JavaScript串行器(JSON.NET),那麼這樣設置的contentType。

Response.ContentType="application/json"; 
1
$.ajax({ 
      url: "(aspx page name/method to be called from the aspx.cs page)", 
      type: "POST", 
      dataType: "json", 
      data: $.toJSON(jsonData), 
      contentType: "application/json; charset=utf-8", 
      success: function (data, textStatus, jqXHR) { 
       //TO DO after success 
     } 
}); 

試試上面的代碼