zoukankan      html  css  js  c++  java
  • ASP.NET AJAX 调用本地WebService(转)

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

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

    改变好像挺大!

  • 相关阅读:
    SDN第七次上机作业
    SDN第六次上机作业
    SDN第五次上机实验
    SDN阅读作业(二)
    软件评测——腾讯音视频
    SDN上机第四次作业
    SDN上机第三次作业
    SDN阅读作业
    SpringBoot整合Swagger2
    JavaWeb项目前后端分离
  • 原文地址:https://www.cnblogs.com/ma/p/640808.html
Copyright © 2011-2022 走看看