• AJAX与WebService


    现在,异步的很流行,运用JS在不刷新页面的情况下,悄悄地去后台偷资料,这是一个及其让人兴奋地事情,同时,在具体操作上,Framework3.5也给我们提供了一个很优秀的平台,让我们可以轻松自如的控制AJAX,但是,自带的UpdatePanel并不能完全的处理所有的问题,前台的JS和后台的C#代码的交互性并不是很好,往往前台希望后台给予反应的时候,后台并不知道,这是非常令人恼火的,比如TextBox的TextChanged事件,所以,就有了AJAX+WebService这种模式,通过JS代码,直接向已经编写好的Web服务索取所需要的信息,这种主动地索要,比被动的期望后台反应要好得多,现在我就举个向后台索要数据的例子:

    1.右键你的网站,然后添加Web服务(asmx后缀名),然后你就会获得一个WebService的基础代码

    using System;
    using System.Collections;
    using System.Linq;
    using System.Web;
    using System.Web.Services;
    using System.Web.Services.Protocols;
    using System.Xml.Linq;
    
    /// <summary>
    ///WebService 的摘要说明
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    //若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 
    //[System.Web.Script.Services.ScriptService]
    public class WebService : System.Web.Services.WebService
    {
    
        public WebService()
        {
    
            //如果使用设计的组件,请取消注释以下行 
            //InitializeComponent(); 
        }
    
        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }
    
    }

    然后,你需要的是把[System.Web.Script.Services.ScriptService]前方的//去掉,然后你就可以使得你的Web服务对于JS代码有了相应的支持。然后添加ScriptManager控件,向程序中添加Web服务的申明。

    <asp:ScriptManager ID="ScriptManager1" runat="server">
    <Services>
    <asp:ServiceReference Path="~/WebService.asmx" />
    </Services>
    </asp:ScriptManager>

    现在,所有工作都做好了,前台和服务都有了相应的支持,来吧,让我们写点JS代码来测试我们所有的努力:

    function CallMethod() {
        WebService.HelloWorld(SucceededCallback);
    }
    function SucceededCallback(result) {
        alert(result);
    }

    只要执行CallMethod()就可以在Alert框中显示Hello World了

    OK,回家洗洗睡

  • 相关阅读:
    杭电1029--Ignatius and the Princess IV(哈希)
    杭电1465--不容易系列之一
    杭电1021--Fibonacci Again
    杭电5018--Revenge of Fibonacci
    UVa10651(记忆化搜索)
    <Win32_5>深入浅出Win32的计时器
    偷个空,写个博客——各种沟通各种纠结
    Arbitrage HDU
    常用的字符串处理方法
    无法捕获的异常:MissingMethodException
  • 原文地址:https://www.cnblogs.com/otomii/p/1617663.html
Copyright © 2020-2023  润新知