Start with Ajax.NET


Ajax.NET Professional

Microsoft.NET Framework 2.0

Ajax.net Professional简介:

 Ajax.net 是一个针对.NET平台Ajax的服务端框架(微软也有一个称之为Atlas的框架,关于Atlas请参看Dflying Chen的Blog),它能让你在客户端调用.NET方法,你还可以获得相关的源代码.不过它的许可协议不是很明确。

联系原作者: http://weblogs.asp.net/mschwarz/contact.aspx

原作者的Blog: http://weblogs.asp.net/mschwarz/

如果你有问题或是找到了Bug请访问: Google group Ajax.NET Professional.

原作者的邮件地址:
Michael Schwarz
Meisenweg 2
90547 Stein, Germany


下载Ajax.NET Pro(5.11.4.2),包括针对.NET1.1(C#)和.NET2.0(C#/VB.NET).

 

让我们先从这里开始吧:Ajax.NET新手指引

 

首先,添加对AjaxPro.2.dll的引用(对于.NET Framework 1.1 添加AjaxPro.dll)

然后,添加配置文件web.config,添加如下几行:

 

 1 None.gif<?xml version="1.0" encoding="utf-8"?>
 2 None.gif<configuration>
 3 None.gif  <appSettings/>
 4 None.gif  <connectionStrings/>
 5 None.gif  <system.web>
 6None.gif    <httpHandlers>
 7None.gif      <add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2"/>
 8None.gif    </httpHandlers>
 9 None.gif    [ dot.gif]
10 None.gif  </system.web>
11 None.gif</configuration>
12 None.gif

意思是所有的ajaxpro/*.ashx请求都由Ajax.PageHandlerFactory处理,而不是由默认的System.Web.UI.PageHandlerFactory处理程序工厂来处理。


现在我们写个AjaxMethod服务器端方法,他和普通的服务器方法唯一不同的地方就是他必须要在方法的上面添加个[AjaxPro.AjaxMethod],代码如下:

1 None.gif     [AjaxPro.AjaxMethod]
2 None.gif     public   int  AddTwo( int  firstInt,  int  secondInt)
3 ExpandedBlockStart.gifContractedBlock.gif     dot.gif {
4InBlock.gif        return firstInt + secondInt;
5ExpandedBlockEnd.gif    }
 

 

要想在客户端使用Javascript调用.NET方法,你还必须注册这些方法:

1 None.gif    protected void Page_Load(object sender, EventArgs e)
2 ExpandedBlockStart.gif ContractedBlock.gif     dot.gif{
3 InBlock.gif         AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default)); 
4 ExpandedBlockEnd.gif    }

 

最后,我们再写客户端脚本来调用服务器方法(代码里有详细的注释)。

以下是前台Default.aspx代码: 

 1 None.gif <% @ Page Language = " C# "  AutoEventWireup = " true "  CodeFile = " Default.aspx.cs "  Inherits = " _Default "   %>
 2 None.gif
 3 None.gif <! DOCTYPE html PUBLIC  " -//W3C//DTD XHTML 1.0 Transitional//EN "   " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " >
 4 None.gif < html xmlns = " http://www.w3.org/1999/xhtml " >
 5 None.gif < head id = " Head1 "  runat = " server " >
 6 None.gif     < title > Untitled Page </ title >
 7 None.gif </ head >
 8 None.gif < body >
 9 None.gif     < form id = " form1 "  runat = " server " >
10 None.gif         < div >
11 None.gif             < input id = " Text1 "  type = " text "  onchange = " add() " />
12 None.gif             +
13 None.gif             < input id = " Text2 "  type = " text "  onchange = " add() " />
14 None.gif             =
15 None.gif             < span id = " result " ></ span >
16 None.gif         </ div >
17 None.gif     </ form >
18 None.gif
19 None.gif     < script type = " text/javascript " >    
20 None.gif    function add()
21 ExpandedBlockStart.gifContractedBlock.gif     dot.gif {
22InBlock.gif    var a=document.getElementById('Text1').value;
23InBlock.gif    var b=document.getElementById('Text2').value;
24InBlock.gif    var a1 = parseInt(a);
25InBlock.gif    var b1 = parseInt(b);
26InBlock.gif   
27InBlock.gif    _Default.AddTwo(a1,b1,getAdd_callback);   // 异步调用服务器端方法 
28ExpandedBlockEnd.gif    }

29 None.gif
30 None.gif    function getAdd_callback(rel)
31 ExpandedBlockStart.gifContractedBlock.gif     dot.gif {
32InBlock.gif       //MyDemo._Default.GetServerTime()得到从服务器传来的数据是object,要写.value
33InBlock.gif        document.getElementById("result").innerHTML=rel.value;
34ExpandedBlockEnd.gif    }

35 None.gif
36 None.gif     </ script >
37 None.gif
38 None.gif </ body >
39 None.gif </ html >
40 None.gif

 

以下是完整的后台Default.aspx.cs代码:

None.gif using  System;
None.gif
using  System.Data;
None.gif
using  System.Configuration;
None.gif
using  System.Web;
None.gif
using  System.Web.Security;
None.gif
using  System.Web.UI;
None.gif
using  System.Web.UI.WebControls;
None.gif
using  System.Web.UI.WebControls.WebParts;
None.gif
using  System.Web.UI.HtmlControls;
None.gif
None.gif
public  partial  class  _Default : System.Web.UI.Page 
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif    [AjaxPro.AjaxMethod]
InBlock.gif    
public int AddTwo(int firstInt, int secondInt)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
return firstInt + secondInt;
ExpandedSubBlockEnd.gif    }
 
InBlock.gif 
InBlock.gif    
protected void Page_Load(object sender, EventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        AjaxPro.Utility.RegisterTypeForAjax(
typeof(_Default)); 
ExpandedSubBlockEnd.gif    }

ExpandedBlockEnd.gif}

None.gif

 

 

转载于:https://www.cnblogs.com/nihgwu/archive/2006/06/04/417161.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值