Bei Verwendung von jQuery zur Implementierung von Ajax in Asp.NET können aspx, ashx und WebService auf der Serverseite verwendet werden. Ich habe kürzlich die WebService-Methode untersucht. Dieser Beitrag enthält ein sehr detailliertes Beispiel für den Aufruf der jQuery Ajax-Methode und einen detaillierten Beispielcode für den Asp.Net WebService, gibt jedoch keine detaillierte Erklärung. Es gab einige Details, auf die ich zunächst nicht geachtet habe, aber es hat viel Mühe gekostet, sie zu lösen:
1) Der Schlüsselfeldname in den Client-Daten muss strikt mit dem Server übereinstimmen. Nebenmethodenparameter.
Zum Beispiel Client:
//有参数调用 $(document).ready(function () { $("#btn2").click(function () { $.ajax({ type: "POST", contentType: "application/json", url: "WebService.asmx/GetWish", data: "{value1:'心想事成',value2:'万事如意',value3:'牛牛牛',value4:2009}", dataType: 'json', success: function (result) { $('#dictionary').append(result.d); } }); }); });
Die GetWish-Funktionsparameter auf dem Server müssen als Wert1, Wert2, Wert3, Wert4 geschrieben werden :
[WebMethod] public string GetWish(string value1, string value2, string value3, int value4) { return string.Format("祝您在{3}年里 {0}、{1}、{2}", value1, value2, value3, value4); }
2) Methode für den Client zum Übertragen von Objekten an den Server:
Client-Code:
//传入对象 $(function () { $("#btn6").click(function () { obj = new Object(); obj.ID = "1"; obj.Value = "aaa"; //'{"obj":{"ID":"1",Value:"Horse"}}' var d = '{"obj":' + JSON.stringify(obj) + '}'; $.ajax({ type: "POST", //访问WebService使用Post方式请求 contentType: "application/json", //WebService 会返回Json类型 url: "WebService.asmx/ParmsObject", //调用WebService的地址和方法名称组合 ---- WsURL/方法名 data: d, //这里是要传递的参数,格式为 data: "{paraName:paraValue}",下面将会看到 dataType: 'json', success: function (result) { alert(result.d); }, error: function (result) { alert("fail"); } }); }); });
Serverseitiger Code:
[WebMethod] public string ParmsObject(Class1 obj) { return obj.ID + ":" + obj.Value; }
Debug-Umgebung: VS2010+jquery-1.3.2.min.js