偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

介紹ASP.NET AJAX

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

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

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

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

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

ajax.js:

 

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


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

為了看效果,我們還要到WebService里搞一點破壞,讓請求出現(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. }  


這里我們手工拋出了一個異常。下面運行程序,會得到如下結果:

 

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

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

【編輯推薦】

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

2009-07-22 16:25:41

ASP.NET AJA

2009-07-22 16:11:43

ASP.NET AJA

2009-07-24 13:41:15

ASP.NET AJA

2009-07-22 16:17:39

ASP.NET AJA

2009-12-22 15:28:45

ASP.NET AJA

2011-07-04 15:41:14

AjaxASP.NET

2011-07-12 13:53:25

ASP.NETAjax

2009-07-29 13:50:26

UpdatePanelASP.NET

2009-07-20 10:16:13

配置ASP.NET A

2009-07-22 15:58:52

ASP.NET AJA

2009-07-31 13:24:43

ASP.NET AJA

2009-07-28 09:02:32

asp.net aja

2009-08-19 09:23:40

ASP.NET Rou

2009-07-29 17:23:17

ASP.NET表單

2009-07-23 14:17:41

2009-07-20 16:12:21

ASP.NET Fra

2009-07-27 17:00:29

ASP.NET主機

2009-07-29 09:14:36

ASP.NET網(wǎng)站

2009-09-10 14:02:08

LINQ ASP.NE

2009-07-29 10:02:49

ASP.NET上傳
點贊
收藏

51CTO技術棧公眾號