2013-01-31 29 views
5

.asmxページにAJAXリクエストを送信できることがわかっています。また、.asmxページがWebメソッド経由でAJAXリクエストを処理することも知っています。AJAXリクエストを.aspxページに送信してJSONを返す

.aspxページにAJAXリクエストを送信することはできますか?もしそうなら、.aspxページもWebメソッド経由でAJAXリクエストを処理しますか? .aspxページからJSONレスポンスを返すことにします。これは可能ですか?

+0

ここにあなたに役立つリンクがありますhttp://blog.devarchive.net/2007/12/calling-page-methods-from-javascript.html –

答えて

8

をお試しください:

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

そして、呼び出すために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. 
      } 
}); 

か、そして、このようのcontentTypeを設定し、任意のJavascriptのシリアライザ(JSON.NET)Response.ContentType 最初の使用を使用し、レスポンスにJSON値を書きたい場合。

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 
     } 
}); 

あなたの.aspxページのコードビハインドでWebメソッドを定義し、それらを呼び出すことができます上記のコード

関連する問題