Asp.NET 中 Ajax 的配置使用

最近开始学习Ajax的应用,以前接触过,一直没有去研究过,下面来说一下AJax的配置应用方法
1、下载ajax.net组件
新建一个web项目,使用.NET1.1就引用类库AjaxPro.dll,如果是使用.NET2.0 就引用AjaxPro.2.dll
AjaxPro.NET包下载,AjaxPro.dll,AjaxPro.2.dll都在里面
我用的是vs2008 .net2.0  ie7.0

2、配置web.config
 在<system.web> 节点内增加
<
httpHandlers>
     <add verb="*"path="*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>
</httpHandlers>

3、空间声明,注册类名
后台代码类声明前可以设置Ajax方法空间声明,可以不设,默认为类名_Default
[AjaxPro.AjaxNamespace("myAjax")]
public partial class _Default : System.Web.UI.Page

在页面加载Page_Load事件中注册
 protected void Page_Load(object sender, EventArgs e)
{
       //注册当前页面类
       AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default));
}

4、编写服务器端方法
 [AjaxPro.AjaxMethod]
public string  ReturnAjax()
{
       return "ajax  success";
}
[AjaxPro.AjaxMethod]声明这个函数是由AJAX.NET在页面异步请求的,总之记住要通过AJAX获得数据的后台函数就使用[AjaxPro.AjaxMethod]来声明一下。
如果函数要对SESSION进行操作,[AjaxPro.AjaxMethod]需要改成[AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.ReadWrite)]。
在 [AjaxPro.AjaxMethod(AjaxPro.……)]  的‘…… ’部分ajax.net还提供了其他很多方法,可以处理一些特殊的请求。
还有一点注意,如果使用Application,直接读取或写入Application也是不行的,需要使用HttpContext.Current.Application,同样对 Request的访问也需要使用HttpContext.Current.Request。原因是直接使用的Application 或Request等 都是由Page类继承下来的,而用Ajax.net对后台方法访问的时候,这些方法并不属于Page类。但是Session比较特殊,使用 HttpContext.Current.Session仍然不能访问,必须使用上面一段所用的方法并且直接就用Session就行。

5、客户端代码
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="MyFirstProject._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>Default页面</title>
<script language="javascript">
function myFirstAjax()
{
  //alert "ajax  success"
  var obj= myAjax.ReturnAjax();
  alert(obj.value);           
  //alert "ajax  success"
  myAjax.ReturnAjax(alertObject);
  //alert "ajax  success"
  myAjax.ReturnAjax(function(obj){alert(obj.value);});

}
 function alertObject(obj)
{
  alert(obj.value);
}

</script>
</head>

<body>
<form id="form1" runat="server">
<input type="button" ID = "btnAjaxTest" runat="server" value="AJax Test" onclick="javascript:myFirstAjax()" />
</form>
</body>
</html>

 

红色的myAjax为后台声明的命名空间,另外  myAjax.ReturnAjax()中的参数除了对应后台函数的参数外,最后可以使用一个表达式参数,这个参数是某个客户段函数名,设置后,  myAjax.ReturnAjax请求后所获得OBJECT对象将被做为 表达式参数函数的一个参数传递到该函数中,然后通过这个OBJECT参数的VALUE就可以获得 AJAX请求后台函数所返回的值了
通过这几个步骤 就可以做出一个简单的使用Ajax.net结合.NET的示例页面了




 

posted on 2009-09-10 12:06  蜗牛漫步IT  阅读(327)  评论(0编辑  收藏  举报

导航