Ajax调用服务器端C#方法
2010-12-05 12:50 smat 阅读(413) 评论(0) 编辑 收藏 举报首先下载 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()"/>