1、下载AjaxPro组件。将AjaxPro.dll引用到网站(项目)。
2、修改web.config。在<system.web>中添加代码:
<configuration> <system.web> <httpHandlers> <!--Register the ajax handler--> <add verb = "*" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro"/> </httpHandlers> </system.web> </configuration>
3、AjaxPro在页Page_Load事件中进行运行时注册。如:
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(AnjianApp.Test));//对AjaxPro在页Page_Load事件中进行运行时注册,这里的
//AnjianApp.Test是指页面类的类名。如果放在命名空间,则写出完整的命名空间.类名,如本例。
}
4、创建服务器端方法,只要给一个方法加上[AjaxPro.AjaxMethod]标记,该方法就可以变成一个AjaxPro可进行映射调用的方法。
#region 创建服务器端方法,只要给一个方法加上[AjaxPro.AjaxMethod]标记,该方法就可以变成一个AjaxPro可进行映射调用的方法
[AjaxPro.AjaxMethod]
public string getString(int a,int b)
{
//该方法实现从客户端传递两个参数,在服务器端相加后将结果返回给客户端
return Convert.ToString(a+b);
}
#endregion
5、客户端调用
<script type="text/javascript">
function getString() {
AnjianApp.Test.getString(1, 2, getString_callBack); //调用服务器端的getString方法,同时指定回调函数getString_callBack
//来接受从服务器端传过来的数据
}
//回调函数,用于接受从服务器端传过来的数据
function getString_callBack(result) {
var test = result.value;
alert(test);
}
</script>
完整的页Page_Load事件代码为:
1 using System;
2 using System.Collections.Generic;
3 using System.Web;
4 using System.Web.UI;
5 using System.Web.UI.WebControls;
6 using AjaxPro;
7
8 namespace AnjianApp
9 {
10 public partial class Test : System.Web.UI.Page
11 {
12 protected void Page_Load(object sender, EventArgs e)
13 {
14 AjaxPro.Utility.RegisterTypeForAjax(typeof(AnjianApp.Test));//对AjaxPro在页Page_Load事件中进行运行时注册,这里的
15 //AnjianApp.Test是指页面类的类名。如果放在命名空间,则写出完整的命名空间.类名,如本例。
16 }
17 #region 创建服务器端方法,只要给一个方法加上[AjaxPro.AjaxMethod]标记,该方法就可以变成一个AjaxPro可进行映射调用的方法
18 [AjaxPro.AjaxMethod]
19 public string getString(int a,int b)
20 {
21 //该方法实现从客户端传递两个参数,在服务器端相加后将结果返回给客户端
22 return Convert.ToString(a+b);
23 }
24 #endregion
25 }
26 }
到此完成了一个完整的AjaxPro的使用了。
****************************************************************华丽的分割线*********************************************************************************
Ajax.net有AjaxPro.dll和Ajax.dll两个版本。两个版本差不多。主要区别是:
(1)Web.config不一样。
Ajax.dll为:
<add verb = "GET,POST" path="ajax/*.ashx" type="Ajax.PageHandlerFactory,Ajax"/>
AjaxPro.dll为:
<add verb = "*" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro"/>
(2)调用服务器方法不一样。如果发现命名空间找不到或者对象未定义引用Ajax.dll时,调用服务器方法不要加命名空间,应用AjaxPro.dll时,调用服务器方法需要加命名空间。
例如:<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Test.aspx.cs" Inherits="AnjianApp.Test" %>
客户端调用方式:
Ajax.dll为:function getString() {
Test.getString(1, 2, getString_callBack); }
AjaxPro.dll为:function getString() {
AnjianApp.Test.getString(1, 2, getString_callBack);
}