ASP.NET AJAX Beta2 调用本地WebService的一些改变

    技术2022-05-11  79

    发现最新版本的改动很大,下面就测试情况作一下说明(这里借用官方的例子):

    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"         οnclick="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>中了。

    改变好像挺大!

     

    最新回复(0)