版权所有,禁止匿名转载;禁止商业使用。
首先创一个WEB项目,直接使用默认创建的那个aspx页面编码
aspx页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!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> <script type="text/javascript"> //下面2个方法实现了Ajax+WebService的无刷新 HandleStateChange为回调函数 执行完HelloWorld返回的值将赋给HandleStateChange的参数reusltText 这里有点难理解 习惯就好 function getStr() { JSWebService.HelloWorld(HandleStateChange); } function HandleStateChange(reusltText) { $get("result").innerHTML = reusltText; } </script> </head> <body> <form id="form1" runat="server"> <div> <input type="button" value="JS调用WebService" onclick="getStr()" /> <asp:ScriptManager ID="ScriptManager1" runat="server"> <Services> <asp:ServiceReference Path="~/JSWebService.asmx" /> </Services> </asp:ScriptManager> <div id="result"> </div> </div> </form> </body> </html>
接着创建webservice
JSWebService.cs代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; /// <summary> ///JSWebService 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] //若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 [System.Web.Script.Services.ScriptService] public class JSWebService : System.Web.Services.WebService { public JSWebService () { //如果使用设计的组件,请取消注释以下行 //InitializeComponent(); } [WebMethod] public string HelloWorld() { return "Hello World"; } }
以上就是完整的代码。其中要注意的有以下几点:
1、javascript中的2个方法的意思要懂,就是实现无刷新
2、asp:ScriptManager的配置要懂,其中Path属性的值就是js要掉用的webservice类
3、webservice类中[System.Web.Script.Services.ScriptService]的注释要取消,为了让JS能调用到该类