Kürzlich arbeitete ein Freund in meiner Nähe an einem Projekt und eine der Modulanforderungen erforderte die Verwendung von js zum Aufrufen von webService. Er bat mich, ihm bei der Lösungsfindung zu helfen, da ich dies noch nie zuvor getan hatte. Nach etwa einer Stunde Testzeit funktionierte es. Nachdem ich es aufgeschrieben hatte, fand ich das Zeug so einfach. Zuerst dachte ich, es wäre kompliziert. Teilen Sie den beim Testen geschriebenen Code mit. Ich hoffe, er ist für alle hilfreich.
Inhalt der WebService-Datei
Code
using System;using System.Web;using System.Collections;using System.Collections.Generic;using System.Web.Services;using System.Web.Services.Protocols;using System.Web.UI.MobileControls;/// <summary >/// Zusammenfassende Beschreibung von JsWebService/// </summary>[WebService(Namespace = " http://tempuri.org/")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)][System.Web.Script.Services .ScriptService] public class JsWebService : System.Web.Services.WebService{ public JsWebService() { //Wenn Sie entworfene Komponenten verwenden, entkommentieren Sie bitte die folgende Zeile //InitializeComponent(); } [WebMethod] public string GetString() { return " GetString"; } [WebMethod] public string GetString(string name) { return string.Format("{0}Welcome!", name); } [WebMethod] public List<string> GetList() { List< string> listStr = new List<string>(); for (int i = 0; i < 10; i++) { listStr.Add("test" + i } return listStr } [WebMethod] public List<JsWebServiceObject() { List<JsWebServiceObject> objs = new List<JsWebServiceObject>(); for (int i = 0; i < 10; i++) { JsWebServiceObject obj = new JsWebServiceObject("name" + i, i + 20); ); } return objs }}
Der ASPX-Seitencode, der WebService aufruft
Code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" " http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html xmlns=" http://www.w3.org/1999/xhtml"><head runat="server"> < title>Js ruft WebService auf</title> <script type="text/javascript"> function GetString() { JsWebService.GetString(GetStringCallBack); //Methode in WebService aufrufen und Rückruffunktion festlegen} function GetStringCallBack(result) { warning(result); } function GetStringParam(name) { JsWebService.GetString(name,GetStringParamCallBack); //Rufen Sie die Methode in WebService auf und legen Sie die Rückruffunktion fest. Fügen Sie diesen Parameter vor der Rückruffunktion hinzu. } function GetStringParamCallBack(result) { warning(result); } function GetList() { JsWebService.GetList(GetListCallBack); } function GetListCallBack(result) { if(result.length!=0) { for(var i=0;i <result.length;i++) { document.getElementById("contentDivGetList").innerHTML += result[i] + "<br/>"; } } } function GetObjectList() { JsWebService.GetObjectList(GetObjectListCallBack); } function GetObjectListCallBack (Ergebnis) { if(result.length!=0) { for(var i=0;i<result.length;i++) { document.getElementById("contentDivGetObjectList").innerHTML += "Name:" + result[i ].Name + „Alter:“ + Ergebnis[i].Alter + „<br/>“; } } } </script></head><body> <form id="form1" runat="server"> <asp:ScriptManager ID="smJs" runat="server" > <Services> <asp:ServiceReference Path="WebService/JsWebService.asmx" /> </Services> </asp:ScriptManager> <div> <input type= "button" name="btnJsWebService" value="GetString" onclick="GetString()" /> <input type="button" name="butJsWebService" value="GetList" onclick="GetList()" /> <input type="button" name="butJsWebService" value="GetObjectList" onclick="GetObjectList()" /> <input type="button" name="butJsWebService" value="GetStringParam" onclick="GetStringParam('js ruft WebService auf ')" /> <div id="contentDivGetObjectList"></div> <div id="contentDivGetObjectList"></div> </div> </form></body></html