Start with Ajax.NET

來源:互聯網
上載者:User


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<?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)); 
    }
}

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.