Ajax框架使用总结(1)

来源:互联网 发布:淘宝手包 编辑:程序博客网 时间:2024/04/27 13:02

基于.Net的AJAX框架使用时需要写下来的心得,老生常谈的东西了。

最近要做的项目里需要使用Ajax技术,其实我向来对该技术仅仅只怀景仰之心而已。去年下半年曾经研究过两天,后来发觉功能实在有限,按很多人的说法“只是老酒装新瓶而已”。 由于我认为Javascript破坏了面向对象的特色并且Javascript调试起来不方便,所以以前一直不太提倡用。不过有些效果必须使用AJAX技术才能做出来的又没有办法了。

前几天下载了一个.Net下的AJAX的框架(),用了一下,还是带来不少的惊喜。呵呵。

在网上搜了一下,有不少的相关资料,包括开发方给出的Example。但我还是犯了不少错,走了不少弯路,可能是人笨了一点,再加上对Javascript不熟。

这个框架带来的最大的惊喜莫过于让Javascript代码可以直接引用我们在后台写的类,方法,属性。给人的一种感觉就是Javascript和.Net融合在一起了。

框架的使用一共分五步:
1、添加对Ajax.dll的引用

2、在web.config文件中添加HttpHandler
<configuration>
  <system.web>
    <httpHandlers>
    <add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />
    </httpHandlers> 
    ...
  <system.web>
</configuration>

3、在你需要使用Ajax的页面的Page_Load事件中注册你前台Javascript要调用的后台类
public class Index : System.Web.UI.Page{
   private void Page_Load(object sender, EventArgs e){
      Ajax.Utility.RegisterTypeForAjax(typeof(Index));     
      //...
   }
   //... 
}

4、申明你的Ajax方法
[Ajax.AjaxMethod()]
public int ServerSideAdd(int firstNumber, int secondNumber)
{
return firstNumber + secondNumber;
}
注意:由于Javascript和.Net框架所支持的数据类型不一样,所以在定义参数时如果定义错了,他就不会执行这个方法的。目前只支持 integers, strings, double, booleans, DateTime, DataSets and DataTables, 自定义类和数组.其他类型需要转换成字符串才行。由于我开始没有仔细看文档,所以在传参数时传了short和byte两个类型,折腾了好久才发觉类型错了。

5、在前台javascript中进行调用。他的调用方法和调用普通的Javascript函数是一样的。函数调用时会返回一个对象,该对象有以下几个属性,Value属性是你真正想要的返回值。

value ----The actual return value (be it a string, custom object or dataset) of the server-side function.
error -----An error message, if any.
request--- The raw response from the xml http request.
context---- A context object.


所以如果你调用的是有返回值的函数,那么你要获得该返回对象的Value属性

注意:在前台调用时,请确认你的HTML控件是在Form标签里面,且Form标签runat=server。这一点通常没有人犯错。我在这个地方栽了跟头,由于我的页面是由页面设计师做的效果图,他们用的纯粹HTML做的,之前又没有和他们配合过,所以在调用后台类时老是提示那个对象未定义,但其他页面又是正常的,郁闷了半天才发现,所以贴出来告诫大家。
 

原创粉丝点击