Ajax.net Professional简介

来源:互联网 发布:js map 编辑:程序博客网 时间:2024/05/16 07:00

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

 

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

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

1    [AjaxPro.AjaxMethod]
2    public int AddTwo(int firstInt, int secondInt)
3    {
4        return firstInt + secondInt;
5    }
 

 

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

1    protected void Page_Load(object sender, EventArgs e)
2    {
3        AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default)); 
4    }

 

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

以下是前台Default.aspx代码: 

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

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

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

 

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

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page 
{
    [AjaxPro.AjaxMethod]
    
public int AddTwo(int firstInt, int secondInt)
    
{
        
return firstInt + secondInt;
    }
 
 
    
protected void Page_Load(object sender, EventArgs e)
    
{
        AjaxPro.Utility.RegisterTypeForAjax(
typeof(_Default)); 
    }

}