自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

介紹ASP.NET AJAX

開發(fā) 后端
本篇介紹了從JavaScript中調(diào)用WebService的一般方法、基本原理及使用異常處理,并且回答了上一篇留下的幾個(gè)問題。

一般來說,有成功就有失敗,異步調(diào)用也是一樣,會(huì)出現(xiàn)請求異常的情況。在傳統(tǒng)的Ajax中,不論請求成功還是失敗,回調(diào)函數(shù)都會(huì)被調(diào)用,然后我們可以判斷 XMLHttpRequest對象的狀態(tài)確定請求是否成功,如果失敗了,可以進(jìn)行異常處理。

但是,在ASP.NET AJAX應(yīng)用中,只有成功時(shí)回調(diào)函數(shù)才會(huì)被調(diào)用,那么失敗時(shí)怎么辦?其實(shí),ASP.NET AJAX允許我們在調(diào)用后臺方法時(shí)指定兩個(gè)回調(diào)函數(shù),語法如下:

類名.方法名(參數(shù)1,參數(shù)2,……,參數(shù)n,請求成功時(shí)的回調(diào)函數(shù),請求失敗時(shí)的回調(diào)函數(shù))

只不過在前面的應(yīng)用中,我們省略了第二個(gè)回調(diào)函數(shù)。為了理解這個(gè)地方,我們做一個(gè)小實(shí)驗(yàn),打開上一篇中的ASPNETAJAXTest這個(gè)程序,將ajax.js這個(gè)文件里的內(nèi)容做如下修改:

ajax.js:

 

  1. //單擊btnSayHello時(shí)調(diào)用的JS函數(shù)  
  2. function btnSayHello_onClick()   
  3. {   
  4. SayHelloService.SayHello(OnSucceeded,OnFailded);  
  5. }  
  6. //成功時(shí)的回調(diào)函數(shù)   
  7. function OnSucceeded(reusltText)   
  8. {  
  9. $get("result").innerHTML=reusltText;  
  10. }  
  11. //失敗時(shí)的回掉函數(shù)  
  12. function OnFailded(error)  
  13. {  
  14. $get("result").innerHTML="調(diào)用失敗。錯(cuò)誤信息:"+error.get_message();  
  15. }  


其中異常時(shí)的回調(diào)函數(shù)有一個(gè)參數(shù)error,它是一個(gè)ASP.NET AJAX框架定義的一個(gè)對象,包含了異常信息。其中g(shù)et_message()方法將返回異常信息字符串。

為了看效果,我們還要到WebService里搞一點(diǎn)破壞,讓請求出現(xiàn)異常,“破壞”后的WebService如下:

 

  1. SayHelloService.cs:  
  2. using System;  
  3. using System.Web;using System.Collections;  
  4. using System.Web.Services;  
  5. using System.Web.Services.Protocols;using System.Web.Script.Services;  
  6. [WebService(Namespace = "http://tempuri.org/")]  
  7. [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]  
  8. [ScriptService]public class SayHelloService  
  9. System.Web.Services.WebService{public SayHelloService() {   
  10. }  
  11. [WebMethod]public string SayHello(){  
  12. //Hello myHello = new Hello();  
  13. //return myHello.SayHello();         
  14. throw new Exception("我來搞破壞!");  
  15. }  


這里我們手工拋出了一個(gè)異常。下面運(yùn)行程序,會(huì)得到如下結(jié)果:

 

如上圖,當(dāng)出現(xiàn)異常時(shí),不僅自動(dòng)調(diào)用了異常處理回調(diào)函數(shù),還很方便地取得了錯(cuò)誤信息。

本篇介紹了從JavaScript中調(diào)用WebService的一般方法、基本原理及使用異常處理,并且回答了上一篇留下的幾個(gè)問題。然而還有一個(gè)問題沒有討論:到目前為止,我們調(diào)用的后臺方法都是沒有參數(shù)的,那么如果有參數(shù),ASP.NET AJAX可以實(shí)現(xiàn)JavaScript變量類型和C#變量類型的自動(dòng)轉(zhuǎn)換嗎?如果是復(fù)雜類型呢?如實(shí)體類、各種對象。再進(jìn)一步,如果可以,應(yīng)該怎么來做呢?我們將在下一篇討論這個(gè)問題。

【編輯推薦】

  1. 淺談ASP.NET MVC框架
  2. 介紹ASP.NET MVC中的MvcAjaxPanel
  3. ASP.NET MVC框架拯救UpdatePanel
  4. 用ASP.NET MVC源代碼尋找解決方案
  5. ASP.NET MVC框架的ActionInvoker
責(zé)任編輯:佚名 來源: IT168
相關(guān)推薦

2009-07-24 13:41:15

ASP.NET AJA

2009-07-22 16:17:39

ASP.NET AJA

2009-07-22 16:11:43

ASP.NET AJA

2009-07-22 16:25:41

ASP.NET AJA

2011-07-04 15:41:14

AjaxASP.NET

2009-12-22 15:28:45

ASP.NET AJA

2011-07-12 13:53:25

ASP.NETAjax

2009-07-20 10:16:13

配置ASP.NET A

2009-07-29 13:50:26

UpdatePanelASP.NET

2009-07-28 09:02:32

asp.net aja

2009-07-22 15:58:52

ASP.NET AJA

2009-07-31 13:24:43

ASP.NET AJA

2009-08-19 09:23:40

ASP.NET Rou

2009-07-29 17:23:17

ASP.NET表單

2009-07-29 10:02:49

ASP.NET上傳

2009-07-27 17:00:29

ASP.NET主機(jī)

2009-07-29 09:14:36

ASP.NET網(wǎng)站

2009-07-21 10:40:36

ASP.NET Pro

2009-07-29 17:26:39

ASP.NET頁面

2009-07-23 14:17:41

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號