首先下载 AjaxPro .dll,你可以从 http://www.ajaxpro.info/ 获得。下载解压后的文件夹中有个AjaxPro.dll,就是它了。使用VS2005新建web项目, 并添加对AjaxPro.dll的引用( vs2008中无需添加 AjaxPro.dll ),然后在Web配置文件中添加:
<
httpHandlers
>
< add verb = " POST,GET " path = " ajaxpro/*.ashx " type = " AjaxPro.AjaxHandlerFactory, AjaxPro " />
</ httpHandlers >
< add verb = " POST,GET " path = " ajaxpro/*.ashx " type = " AjaxPro.AjaxHandlerFactory, AjaxPro " />
</ httpHandlers >
这个配置项表明所有的ajaxpro/*.ashx请求(即从客户发送的Ajax请求)都交给AjaxPro.AjaxHandlerFactory处理,而不是由默认的System.Web.UI.PageHandlerFactory来处理。
新建的web项目有个默认的_Default页面,我们为其加上命名空间如MyAjaxNetTest,然后在_Default的HTML第一句也要加上这个名目空间:
<%
@ Page Language
=
"
C#
"
AutoEventWireup
=
"
true
"
CodeFile
=
"
Default.aspx.cs
"
Inherits
=
"
_Default
"
%>
然后在PageLoad中注册本页面到AjaxPro中:
protected
void
Page_Load(
object
sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax( typeof (_Default));
}
{
AjaxPro.Utility.RegisterTypeForAjax( typeof (_Default));
}
我们先进行第一个测试,从客户调用服务端的简单方法。首先在_Default类中添加方法:
[AjaxPro.AjaxMethod]
public string GetTime()
{
return DateTime.Now.ToString();
}
public string GetTime()
{
return DateTime.Now.ToString();
}
客户现在可以在JS中调用这个方法了,如
<
mce:script type
=
"
text/javascript
"
><!--
function getTime()
{
alert(_Default.GetTime().value);
}
// --></mce:script>
function getTime()
{
alert(_Default.GetTime().value);
}
// --></mce:script>
然后你可以加个HTML的button,onclick处理函数设为getTime()。
<
input id
=
"
Button1
"
type
=
"
button
"
value
=
"
button
"
onclick
=
"
getTime()
"
/>