从客户端调用asp.net ajax服务器控件的公共函数

时间:2011-06-15 11:35:30

标签: ajax asp.net-ajax callback custom-server-controls servercontrols

我想在ASP.NET中创建ajax服务器控件,在该应用程序中我有一个文本框,我想将该文本框的文本发送到在ASP.NET ajax服务器控件类中创建的函数,该函数返回一些结果基于文本。

我的应用程序使用从外部DLL导入的服务器控件作为参考。此服务器控件将使用AJAX来完成其功能。

要使用我的控件,我会在.aspx页面上添加脚本管理器和我的控件,它应该开始工作。

1 个答案:

答案 0 :(得分:1)

  1. 向页面添加脚本管理器
  2. 向项目添加新的Web服务文件
  3. 将属性[ScriptService]添加到服务类
  4. 创建一个接受并返回字符串的方法,即:
  5. 将属性[ScriptMethod]添加到方法
  6. 在带有脚本管理器的aspx页面上,添加对asmx文件的服务引用
  7. 在javascript中使用完整命名空间调用服务器端方法。
  8. MyPage.aspx:

    ...
    <asp:ScriptManager ID="ScriptManager1" runat="server">
        <Services>
            <asp:ServiceReference Path="~/MyService.asmx" />
        </Services>
    </asp:ScriptManager>
    ...
    <script>
        MyNameSpace.MyService.MyMethod('some text', responseHandlerMethod, errorHandlerMethod);
    </script>
    ...
    

    MyService.asmx

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Services;
    using System.Web.Script.Services;
    
    namespace MyNameSpace
    {
        [WebService(Namespace = "http://tempuri.org/")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        [System.ComponentModel.ToolboxItem(false)]
        [ScriptService]
        public class MyServiceClass: System.Web.Services.WebService
        {
            [ScriptMethod]
            [WebMethod]
            public string MyMethod(string SomeText)
            {
                return "Hi mom! " + SomeText;
            }
        }
    }