最近、私の周りの友人がプロジェクトに取り組んでおり、モジュール要件の 1 つで webService を呼び出すために js を使用する必要がありました。その解決策を考えるのを手伝ってほしいと頼まれました。私はこれまでそうしたことがなかったのです。約1時間のテスト後、うまくいきました。書いてみると、これはとても簡単なことだと気づきました。最初は複雑だと思いました。テスト中に書いたコードを共有します。皆さんのお役に立てれば幸いです。
Webサービスファイルの内容
コード
System の使用;System.Web の使用;System.Collections の使用;System.Collections.Generic の使用;System.Web.Services の使用;System.Web.Services.Protocols の使用;System.Web.UI.MobileControls の使用;/// <summary >/// 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() { //設計されたコンポーネントを使用する場合は、次の行のコメントを解除してください //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; List<JsWebServiceObject> objs = new List<JsWebServiceObject>(); for (int i = 0; i < 10; i++) { JsWebServiceObject obj = new JsWebServiceObject("name" + i, i + 20); ); } オブジェクトを返します。
WebService を呼び出す aspx ページ コード
コード
<%@ 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 は WebService を呼び出します</title> <script type="text/javascript"> function GetString() { JsWebService.GetString(GetStringCallBack) //WebService のメソッドを呼び出し、コールバック関数を設定します} function GetStringCallBack(result); alert(result); } function GetStringParam(name) { JsWebService.GetString(name,GetStringParamCallBack); //WebService でメソッドを呼び出し、コールバック関数を設定します。このメソッドにパラメータがある場合は、このパラメータをコールバック関数の前に追加します。 } 関数 GetStringParamCallBack(結果) { アラート(結果); } 関数 GetList() { JsWebService.GetList(GetListCallBack) } 関数 GetListCallBack(結果) { if(result.length!=0) { for(var i=0;i <result.length;i++) { document.getElementById("contentDivGetList").innerHTML += result[i] + "<br/>" } } } function GetObjectList() { JsWebService.GetObjectList(GetObjectListCallBack) } (結果) { if(result.length!=0) { for(var i=0;i<result.length;i++) { document.getElementById("contentDivGetObjectList").innerHTML += "Name:" + result[i ].名前 + "年齢:" + result[i].年齢 + "<br/> } } } </script></head><body> <form id="form1" runat="server">; <asp:ScriptManager ID="smJs" runat="server" > <サービス> <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 は WebService を呼び出します')" /> <div id="contentDivGetList"></div> <div id="contentDivGetObjectList"></div> </div> </form></body></html