Baru-baru ini, seorang teman di sekitar saya sedang mengerjakan sebuah proyek, dan salah satu persyaratan modul memerlukan penggunaan js untuk memanggil webService. Dia meminta saya untuk membantunya memikirkan solusi, karena saya belum pernah melakukan ini sebelumnya. Setelah sekitar satu jam pengujian, itu berhasil. Saya menemukan hal ini sangat sederhana setelah saya menuliskannya. Awalnya saya pikir itu rumit. Bagikan kode yang ditulis selama pengujian, semoga bermanfaat bagi semua orang.
Konten file Layanan Web
kode
menggunakan Sistem;menggunakan System.Web;menggunakan System.Collections;menggunakan System.Collections.Generic;menggunakan System.Web.Services;menggunakan System.Web.Services.Protocols;menggunakan System.Web.UI.MobileControls;/// <ringkasan >/// Deskripsi ringkasan 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() { //Jika menggunakan komponen yang dirancang, harap batalkan komentar pada baris berikut //InitializeComponent(); GetString"; } [Metode Web] string publik GetString(nama string) { return string.Format("{0}Selamat datang!", nama); } [Metode Web] Daftar publik<string> GetList() { Daftar< string> listStr = Daftar<string>(); untuk (int i = 0; i < 10; i++) { listStr.Add("test" + i } kembalikan listStr } [Metode Web] Daftar publik<JsWebServiceObject> GetObjectList() { Daftar<JsWebServiceObject> objs = Daftar baru<JsWebServiceObject>(); for (int i = 0; i < 10; i++) { JsWebServiceObject obj = new JsWebServiceObject("nama" + i, i + 20); ); } mengembalikan objek; }}
Kode halaman aspx yang memanggil WebService
kode
<%@ 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 memanggil WebService</title> <script type="text/javascript"> function GetString() { JsWebService.GetString(GetStringCallBack); //Panggil metode di WebService dan atur fungsi panggilan balik} function GetStringCallBack(result) { alert(result); } function GetStringParam(name) { JsWebService.GetString(name,GetStringParamCallBack); //Panggil metode di WebService dan atur fungsi callback. } fungsi GetStringParamCallBack(hasil) { peringatan(hasil); } fungsi GetList() { JsWebService.GetList(GetListCallBack); fungsi GetListCallBack(hasil) { if(hasil.panjang!=0) { for(var i=0;i <hasil.panjang;i++) { dokumen.getElementById("contentDivGetList").innerHTML += hasil[i] + "<br/>"; (hasil) { if(result.length!=0) { for(var i=0;i<result.length;i++) { document.getElementById("contentDivGetObjectList").innerHTML += "Nama:" + hasil[i ].Nama + "Usia:" + hasil[i].Usia + "<br/> } } } </script></head><body> <form id="form1" runat="server"> <asp:ScriptManager ID="smJs" runat="server" > <Layanan> <asp:ServiceReference Path="WebService/JsWebService.asmx" /> </Layanan> </asp:ScriptManager> <div> <tipe masukan= "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 memanggil WebService ')" /> <div id="contentDivGetList"></div> <div id="contentDivGetObjectList"></div> </div> </form></body></html