在ASP.NET中實現AJAX(二)

來源:互聯網
上載者:User
建立伺服器端函數

 

現在來建立可從用戶端調用中非同步訪問的伺服器端函數。因為目前還不支援所有的傳回型別(不用擔心,將在目前的基礎上開發新的版本),我們繼續使用簡單的ServerSideAdd函數吧。在file後的代碼中,向頁面添加下列代碼:

[Ajax.AjaxMethod()]

public int ServerSideAdd(int firstNumber, int secondNumber)

{

return firstNumber + secondNumber;

}

要注意,這些函數具有Ajax.AjaxMethod屬性集。該屬性告訴封裝器這些方法建立javaScript代理,以便在用戶端調用。

用戶端調用

最後一步是用JavaScript調用該函數。AJAX封裝器負責建立帶有兩個參數的JavaScript函數Sample.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>

當然,我們不希望僅僅用這種強大的能力來警告使用者。這就是所有用戶端代理(如JavaScript Sample.ServerSideAd函數)還接受其他特性的原因。這種特性就是為了處理響應而調用的回呼函數:

Sample.ServerSideAdd(100,99, ServerSideAdd_CallBack);

function ServerSideAdd_CallBack(response){

if (response.error != null){

alert(response.error);

return;

}

alert(response.value);

}

從上述代碼中可以看到我們指定了另外一個參數。ServerSideAdd_CallBack(同樣參見上述代碼)是用於處理伺服器響應的用戶端函數。這個回呼函數接收一個響應對象,該對象公開了三個主要性質

Value——伺服器端函數實際返回的值(無論是字串、自訂對象還是資料集)。

Error——錯誤訊息,如果有的話。

Request——xml http請求的原始響應。

Context——內容物件。

首先我們檢查error只看看是否出現了錯誤。通過在伺服器端函數中拋出異常,可以很容易處理error特性。在這個簡化的例子中,然後用這個值警告使用者。Request特性可用於獲得更多資訊。

http://www.shpan.com/Detail.asp?ID=397

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.