Ajax的初次使用

本文介绍如何在ASP.NET 1.1环境中实现AJAX功能,包括添加Ajax.dll引用、设置HttpHandler、注册类型、添加服务器端函数及使用JS调用等关键步骤。

Ajax的初次使用

步骤如下:

一:添加Ajax.dll引用

我们首先需要把Ajax.dll库引用进项目。

二:设置HttpHandler

在Web.config下设置HttpHandler。我们需要在<configuration>/<system.web>下添加<httpHandlers>。具体代码如下:

<configuration>
  
<system.web>
    
<httpHandlers>
       
<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />
    
</httpHandlers>
    .
  
</system.web>
</configuration>  

三:设置页面属性

下面两种方法你可以任选一种:
1. 在Page_Load事件中,注册AJAX
我们需要在Page_Load事件中,为需要通过JS访问其函数的类进行注册。具体代码如下:
private void Page_Load(object sender, System.EventArgs e)
        
{
            Ajax.Utility.RegisterTypeForAjax(
typeof(noFlash));
            Ajax.Utility.RegisterTypeForAjax(
typeof(User));
            
// 在此处放置用户代码以初始化页面
        }
其中,noFlash和User都是这个页面下的类名。
2.在页面中添加<script>,注册AJAX
这里,我们需要在它的<head>下添加下列代码:
<script language="javascript" src="ajax/common.ashx"></script>
<script language="javascript" src="ajax/NoFlash.noFlash,NoFlash.ashx"></script>
<script language="javascript" src="ajax/NoFlash.User,NoFlash.ashx"></script>
其中,NoFlash为此页面的命名空间,noFlash和User为这个页面中的类名。如果此类的函数会被JS调用,就必须注册它。
个人推荐使用第一种方法。

四:添加服务器端函数

添加用于客户端调用的服务器端函数。这里,这些函数和平常的C#中的函数书写一模一样,但我们需要在函数前加[Ajax.AjaxMethod()]特性来表明它将可以被客户端JS调用。下面是一个简单的例子:
[Ajax.AjaxMethod()]
        
public int ServerSideAdd(int firstNumber, int secondNumber)
        
{
            
return firstNumber + secondNumber;
        }
这样,在运行的时候,系统会自动在调用的这个页面的客户端产生一个ServerSideAdd的JS函数,它接收两个int型的参数。当客户端调用这个JS函数的时候,服务器端的ServerSideAdd函数将被调用,并返回相应的结果。
需要注意的是:如果是整个类作为返回的对象,要在定义这个返回类的头部加[Serializable()]特性。如:
    [Serializable()]
    
public class User
    
{
        
private int _userId;
        
private string _firstName;
        
private string _lastName;

        
public int userId
        
{
            
get return _userId; }
        }

        
public string FirstName
        
{
            
get return _firstName; }
        }

        
public string LastName
        
{
            
get return _lastName; }
        }


        
public User(int _userId, string _firstName, string _lastName)
        
{
            
this._userId = _userId;
            
this._firstName = _firstName;
            
this._lastName = _lastName;
        }

        
public User(){}

        [Ajax.AjaxMethod()]
        
public static User GetUser(int userId)
        
{
            
//Replace this with a DB hit or something :)
            return new User(userId,"Michael""Schwarz");
        }

    }

五:使用JS,调用服务器端函数

在前面这些准备工作都做好后,即可以在JS里书写调用的函数了。具体的调用方法有两种(拿ServerSideAdd举例):
1.我们可以直接调用如<name of class>.<name of server side function>,这里就是noFlash.ServerSideAdd(100,99)。
2.添加一个处理返回值的函数,这里就是noFlash.ServerSideAdd(100,99,ServerSideAdd_CallBack)。其中,ServerSideAdd_CallBack就是用来处理服务器端运行ServerSideAdd后返回的值的函数。具体的代码如:
<script language="javascript">
                noFlash.ServerSideAdd(
100,99,ServerSideAdd_CallBack);

                
function ServerSideAdd_CallBack(response){
                    
if (response.error != null){
                        alert(response.error);
                        
return;
                    }

                    alert(response.value);
                }

 
</script>

这样,我们就可以在.NET1.1下实现AJAX了。个人感觉这样做出的无刷新页面实在是棒。AJAX肯定会有很光明的前景

附上我写的实现代码,供大家探讨 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值