说明;本示例中用到的Employee类,上一篇文章中已写本文就省略掉了
客户端调用WebService过程:先实现WebService,再在客户端中调用WebService。
示例:
EmployeeService.asmx
<%@ WebService Language="C#" CodeBehind="~/App_Code/EmployeeService.cs" Class="EmployeeService" %>
EmployeeService.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
/// <summary>
///EmployeeService 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
[System.Web.Script.Services.ScriptService]
public class EmployeeService : System.Web.Services.WebService {
public EmployeeService () {
//如果使用设计的组件,请取消注释以下行
//InitializeComponent();
}
[WebMethod]
public string HelloWorld() {
return "Hello World";
}
[WebMethod]
public Employee GetEmployee(string firstName, string lastName, string title)
{
return new Employee(firstName+"Hello", lastName+"World", title);
}
}
WebServiceAccess.Aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="WebServiceAccess.aspx.cs" Inherits="WebServiceAccess" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"> <Services> <asp:ServiceReference Path="~/EmployeeService.asmx" /> </Services> </asp:ScriptManager> <script type="text/javascript"> function ShowEmployee(firstName, lastName, title) { EmployeeService.GetEmployee(firstName, lastName, title, onGetEmployeeSuccess); } function onGetEmployeeSuccess(employee) { alert(String.format("firstName:{0},lastName:{1},title:{2}", employee.FirstName, employee.LastName, employee.Title)); } </script> <div> <input type="button" value="Bill Gates" onclick="ShowEmployee(‘Bill‘,‘Gates‘,‘Chair man‘)" /> <input type="button" value="Steve Ballmer" onclick="ShowEmployee(‘Steve‘,‘Ballmer‘,‘CEO‘)" /> </div> </form> </body> </html>