发现最新版本的改动很大,下面就测试情况作一下说明(这里借用官方的例子): 1、首先建一个WebService 文件(HelloWorldService.asmx),代码如下: <%@ WebService Language="C#" Class="Samples.AspNet.HelloWorldService" %> using System; using System.Web; using System.Web.Services; using System.Xml; using System.Web.Services.Protocols; using Microsoft.Web.Script.Services; namespace Samples.AspNet { [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [ScriptService] public class HelloWorldService : System.Web.Services.WebService { [WebMethod] public string HelloWorld(String query) { string inputString = Server.HtmlEncode(query); if (!String.IsNullOrEmpty(inputString)) { return String.Format("Hello, you queried for {0}. The " + "current time is {1}", inputString, DateTime.Now); } else { return "The query string was null or empty"; } } } } 这里要说明的是[ScriptService] 属性,只有加上这个性属性,才能在页面中通过js进行异步调用; 2、建一个调用页面(AjaxScript1.aspx),如下: <%@ Page Language="C#" %> <!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 id="Head1" runat="server"> <title="测试一" /> <style type="text/CSS"> body { font: 11pt Trebuchet MS; font-color: #000000; padding-top: 72px; text-align: center } .text { font: 8pt Trebuchet MS } </style> </head> <body> <form id="Form1" runat="server"> <asp:ScriptManager runat="server" ID="scriptManager"> <Services> <asp:ServiceReference path="~/HelloWorldService.asmx" /> </Services> </asp:ScriptManager> <div> Search for <input id="SearchKey" type="text" /> <input id="SearchButton" type="button" value="Search" onclick="DoSearch()" /> </div> </form> <hr style="width: 300px" /> <div> <span id="Results"></span> </div> <script type="text/javascript"> function DoSearch() { var SrchElem = document.getElementById("SearchKey"); Samples.AspNet.HelloWorldService.HelloWorld(SrchElem.value, OnRequestComplete); } function OnRequestComplete(result) { var RsltElem = document.getElementById("Results"); RsltElem.innerHTML = result; } </script> </body> </html> 注意,这里的<asp:ScriptManager runat="server" ID="scriptManager"> <Services> <asp:ServiceReference path="~/HelloWorldService.asmx" /> </Services> </asp:ScriptManager> 放在<form>中了。 改变好像挺大! |