2011-06-30 11 views
4
function BindJson() { 
     $.ajax({ 
      type: "POST", 
      url: "NewPage.aspx/SerializeJson", 
      data: "{}", 
      contentType: "application/json", 
      dataType: "json", 
      success: function (data1) { 
       alert(data1); 
      } 
     }) 
    } 
    [WebMethod] 
     public static string SerializeJson() 
     { 
      JavaScriptSerializer js = new JavaScriptSerializer(); 
      //Person p2 = js.Deserialize<Person>(str); 
      return ""; 
     } 

パラメータをserializeJson関数にデータとして渡すにはどうすればよいですか?パラメータ渡しのJson ajax

+0

あなたが渡したいどのようなデータのデータパラメータ – hvgotcodes

+0

でJSONを置きますか? – Lamps

+0

次のようなjsonデータを渡したい: - {"firstName": "Denny"、 "lastName": "Cherian"、 "department": "Microsoft PSS"、 "addressline":{"addressline1" "インド"、 "ピン":560028}、 "テクノロジー"、 "インド"、 "インドネシア"、 "インドネシア" :["IIS"、 "ASP.NET"、 "JavaScript"、 "AJAX"]} –

答えて

10

これはあなた(以下完全に動作するコードサンプル)のために働くだろう。キーはPersonオブジェクトを渡すことです。また、aspxページの代わりに単純なWebサービス(myService.asmx)を使用しました。余分なオーバーヘッドを必要としないのはどうしてですか?

キーは、クライアント上でPersonオブジェクトを作成し、次にJSON.stringifyを使用してPersonオブジェクトをWebサービスに渡します。

Javascriptを

<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.1.js"></script> 
<script type="text/javascript"> 
    function BindJson() { 
     $.ajax({ 
      type: "POST", 
      url: "myService.asmx/SerializeJson", 
      data: JSON.stringify({ person:{ firstName: "Denny", lastName: "Cherian", department: "Microsoft PSS", address: { addressline1: "Microsoft India GTSC", addressline2: "PSS - DSI", city: "Bangalore", state: "Karnataka", country: "India", pin: "560028" }, technologies: ["IIS", "ASP.NET", "JavaScript", "AJAX"] }}), 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (data1) { 
       alert(data1.d); 
      }, 
      error: function (request, status, errorThrown) { 
       alert(status); 
      } 
     }); 
    } 

    $(document).ready(function() { 
     BindJson();  
    }); 
</script> 

C#

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Services; 

namespace TestProject 
{ 
    /// <summary> 
    /// Summary description for myService 
    /// </summary> 
    [WebService(Namespace = "http://tempuri.org/")] 
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
    [System.ComponentModel.ToolboxItem(false)] 
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    [System.Web.Script.Services.ScriptService] 
    public class myService : System.Web.Services.WebService 
    { 

     [WebMethod] 
     public string SerializeJson(Person person) 
     { 
      return "Success"; 
     } 

     public class Person 
     { 
      public string firstName { get; set; } 
      public string lastName { get; set; } 
      public string department { get; set; } 
      public Address address { get; set; } 
      public string[] technologies { get; set; } 
     } 

     public class Address 
     { 
      public string addressline1 { get; set; } 
      public string addressline2 { get; set; } 
      public string city { get; set; } 
      public string state { get; set; } 
      public string country { get; set; } 
      public string pin { get; set; }    
     } 
    } 
} 
3

Serialize()メソッドを使用すると、jQueryがデータを渡すことができます。

見てください、このarticle

+0

ハイジャックの記事を投稿する理由 –

関連する問題