في الآونة الأخيرة، كان أحد الأصدقاء من حولي يعمل في مشروع، وكان أحد متطلبات الوحدة يتطلب استخدام js للاتصال بخدمة الويب، وطلب مني مساعدته في التفكير في حل، لأنني لم أفعل ذلك من قبل. وبعد حوالي ساعة من التجربة نجح الأمر. لقد وجدت أن هذه الأشياء بسيطة جدًا بعد أن كتبتها. في البداية اعتقدت أن الأمر معقد. شارك الكود المكتوب أثناء الاختبار، وآمل أن يكون مفيدًا للجميع.
محتوى ملف WebService
شفرة
باستخدام النظام;باستخدام 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 } [WebMethod] public List<JsWebServiceObject> GetObjectList() {; List<JsWebServiceObject> objs = new List<JsWebServiceObject>(); for (int i = 0; i < 10; i++) { JsWebServiceObject obj = new JsWebServiceObject("name" + i, i + 20); ); } إرجاع الكائنات }}
رمز صفحة aspx الذي يستدعي WebService
شفرة
<%@ 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) { تنبيه (نتيجة)؛ } function GetStringParam(name) { JsWebService.GetString(name,GetStringParamCallBack); // اتصل بالطريقة في WebService وقم بتعيين وظيفة رد الاتصال. } function GetStringParamCallBack(result) { تنبيه(result) } function GetList() { JsWebService.GetList(GetListCallBack); <result.length;i++) { document.getElementById("contentDivGetList").innerHTML += result[i] + "<br/>"; (نتيجة) { if(result.length!=0) { for(var i=0;i<result.length;i++) { document.getElementById("contentDivGetObjectList").innerHTML += "الاسم:" + نتيجة[i ].Name + "Age:" + result[i].Age + "<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= "زر" name = "btnJsWebService" value = "GetString" onclick = "GetString ()" /> <input type = "button" name = "butJsWebService" value = "GetList" onclick = "GetList ()" /> <input اكتب = "زر" اسم = "لكن JsWebService" قيمة = "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