DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> AJAX入門 >> AJAX詳解 >> AJAX.NET用戶開發指南(2)
AJAX.NET用戶開發指南(2)
編輯:AJAX詳解     
AJax|開發指南 //C#

public class Index : System.Web.UI.Page{
 private void Page_Load(object sender, EventArgs e){
  Ajax.Utility.RegisterTypeForAJax(typeof(Index));
  //...
 }
 //...
}
  對RegisterTypeForAJax方法的調用在頁面產生如下的Javascript代碼(另外一種選擇,你也可以人工在頁面上添加如下的Javascript代碼)

<script language="Javascript" src="AJax/common.ashx"></script>
<script language="Javascript"
src="AJax/NAMESPACE.PAGECLASS,ASSEMBLYNAME.ashx"></script>
  上面這段代碼的粗體部分NAMESPACE.PAGECLASS,ASSEMBLYNAME含義如下:


NAMESPACE.PAGECLASS

當前頁面的命名空間和類

ASSEMBLYNAME

當前頁面的程序集的名稱

  下面是在AJaxPlay項目中sample.ASPx的示例輸出:

<%@ Page Inherits="AJaxPlay.Sample" Codebehind="sample.ASPx.cs" ... %>
<Html>
<head>
<script language="Javascript" src="AJax/common.ashx"></script>
<script language="Javascript"
src="AJax/AJaxPlay.Sample,AJaxPlay.ashx"></script>

</head>
<body>
<form id="Form1" method="post" runat="server">
...
</form>
</body>
</Html>
  你可以測試一下,人工通過浏覽器將src path(通過查看源文件並copy)打開,一切都能正常的工作如果輸出了無意義的文本表示到目前為止是正確的,如果輸出ASP.Net錯誤,則表示中間出現了錯誤

  即使你不了解HttpHandle的工作方式,也應該可以理解上面的描述通過web.config,我們可以確保發送向AJax/*.ashx的請求由我們自定義的句柄來處理,很顯然,兩個腳本標記由自定義句柄處理

  編寫服務端函數

  現在我們編寫服務器端函數,他們可以被客戶端異步的調用盡管現在還不能支持全部的返回類型,我們仍堅持服務器端添加功能在codebehind文件的頁面類裡,添加下面的方法:

'VB.Net

<Ajax.AJaxMethod()> _

Public Function ServerSideAdd (byval firstNumber As Integer, byval secondNumber
As Integer) As Integer
Return firstNumber + secondNumber
End Function

//C#

[Ajax.AJaxMethod()]

public int ServerSideAdd(int firstNumber, int secondNumber)
{
 return firstNumber + secondNumber;
}
  注意,這個函數有Ajax.AjaxMethod()定制屬性,屬性服務會告知AJax封裝類為此方法創建一個Javascript代理,這樣才能被客戶端調用

  定制客戶端調用

  接下來在客戶端用Javascript調用函數AJax封裝類會創建一個Javascript函數,帶有兩個參數,名字是 類名.ServerSideAdd作為最基本的功能,我們所需要作的只是調用這個方法並且傳遞參數:

<%@ Page Inherits="AJaxPlay.Sample" Codebehind="sample.ASPx.cs" ... %>
<Html>
<head>
<script language="Javascript" src="AJax/common.ashx"></script>
<script language="Javascript"
src="ajax/AjaxPlay.Sample,AJaxPlay.ashx"></script>

</head>

<body>
<form id="Form1" method="post" runat="server">
<script language="Javascript">
var response = Sample.ServerSideAdd(100,99);
alert(response.value);
</script>
</form>
</body>
</Html>
  當然,我們不能把這麼強大的功能僅僅用來通過alert來提醒浏覽者,這就是為什麼所有的客戶端代理(如 類名.ServerSideAdd函數)同時帶有一個額外的定制屬性這個屬性是用來處理服務器響應的回調函數:

 

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved