1.1.1在web.config文件中的<system.web>加入以下设置
<httpHandlers> | |
<add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/> | |
</httpHandlers> |
3. 创建一个页面Default.aspx
4. 在Default.aspx.cs文件的Page_Load中注册AJAX可调用的类的名称
protected void Page_Load(object sender, EventArgs e) | |
{ | |
AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default)); | |
} |
5. 创建AJAX可调用的方法:
[AjaxPro.AjaxMethod]
public string SetTb(string name) | |
{ | |
return name; | |
} |
注意:[AjaxPro.AjaxMethod]是定义AjaxPro可调用的方法,是必须要注明的
6. 前台代码
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> | |
<!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 runat="server"> | |
<title>无标题页</title> | |
<script language="javascript" type="text/javascript"> | |
// <!CDATA[ | |
function comit_onclick() | |
{ | |
var name=document.getElementById("tb1").value; | |
_Default.SetTb(name,callback); | |
} | |
function callback(res) | |
{ | |
document.getElementById("tb").value=res.value; | |
} | |
// ]]> | |
</script> | |
</head> | |
<body> | |
<form id="form1" runat="server"> | |
<div> | |
<asp:TextBox ID="tb1" runat="server"></asp:TextBox><br /> | |
<input id="comit" type="button" value="Ok" onclick="return comit_onclick()" /> | |
<br /><asp:TextBox ID="tb" runat="server"></asp:TextBox> | |
</div> | |
</form> | |
</body> | |
</html> |
注意:这里值得注意的地方是 _Default.SetTb(name,callback);这句话是为了调用_Default.aspx.cs后台代码中SetTb这个方法的,如果这个方法没有要传递的参数则指明返回的处理方法是哪一个就OK了,写成_Default.SetTb(callback);
2.1.1用VS打开项目,在其资源管理器中,右击引用,左击"添加引用"
2.1.2出现如图1_2所示的对话框,点击浏览,找到AjaxPro.dll文件所在的位置,双击AjaxPro.dll,然后点击确定。
2.1.3在资源管理器的引用文件夹下,就可以看到AjaxPro了,说明添加引用成功,
2.2、配置web.config
这一步的作用是保证客户端向"ajaxpro/*.ashx"的请求(POST和GET)都被AjaxPro.AjaxHandlerFactory拦截。
打开web.config文件,在<configuration><system.web>后添加以下代码,
<httpHandlers> | |
<add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro"/> | |
</httpHandlers> |
2.3、添加服务端方法
2.3.1打开后台代码,在Page_Load方法体内加上如下代码,
AjaxPro.Utility.RegisterTypeForAjax(typeof(所在类的类名));
其作用是向客户端输出下面的代码:
<script type="text/javascript" src="/ch33/ajaxpro/core.ashx"></script> | |
<script type="text/javascript" src="/ch33/ajaxpro/ch33.Verify,ch33.ashx"></script> |
2.3.2、添加数字加一的方法,首先在方法前加[AjaxPro.AjaxMethod],然后像写C#方法一样写方法
注意:需要加上[Ajax.AjaxMethod]标识,这样才能够被客户端访问
2.4、添加前台代码
在前台添加JS脚本,调用服务器端方法,如图4-1所示(Try.AjaxTest.Add(num),Try为页面类,即AjaxTest类所在的命名空间,这里是Try;而AjaxTest即为类名,Add为方法名)
2.5、运行程序,检验结果