通过jQuery调用ASP.NET的AJAX
傳統(tǒng)上,在ASP.NET頁面中實(shí)現(xiàn)AJAX的方法是拖放一個(gè)ScriptManager控件,并進(jìn)行一系列的設(shè)置和相關(guān)編程。但事實(shí)上,這并不是理想的解決方案。使用jQuery來調(diào)用ASP.NET后臺(tái)的方法來實(shí)現(xiàn)AJAX可以節(jié)省至少三次的服務(wù)器與客戶端之間的通訊連接。
要實(shí)現(xiàn)通過jQuery的AJAX來調(diào)用ASP.NET后臺(tái)的方法并不復(fù)雜,可以通過一個(gè)簡單的例子來說明。
首先,在ASP.NET項(xiàng)目中添加一個(gè)Web服務(wù)(asmx)文件,假設(shè)命名為WebService.asmx,可以看到它后臺(tái)自動(dòng)生成以下代碼:
[WebService(Namespace ="http://tempuri.org/")]
[WebServiceBinding(ConformsTo =WsiProfiles.BasicProfile1_1)]
//若要允許使用 ASP.NET AJAX 從腳本中調(diào)用此 Web 服務(wù),請取消對下行的注釋。
//[System.Web.Script.Services.ScriptService]
public class WebService :System.Web.Services.WebService {public WebService () {//如果使用設(shè)計(jì)的組件,請取消注釋以下行//InitializeComponent();}[WebMethod]public string HelloWorld() {return "Hello World";}
} 可以看到,系統(tǒng)已經(jīng)為使用者做了一個(gè)Web服務(wù)后臺(tái)方法的示例,即HelloWorld方法。調(diào)用HellowWorld方法不需要任何參數(shù),而調(diào)用成功后,就可以獲得一個(gè)字符串為HelloWorld。
接著,需要取消對[System.Web.Script.Services.ScriptService]這行的注釋,使這個(gè)Web服務(wù)可以被AJAX腳本調(diào)用。然后可以通過編寫jQuery代碼調(diào)用這個(gè)方法:
$.ajax({type: "POST",url: "WebService.asmx/HelloWorld",data: "{}",contentType: "application/json; charset=utf-8",dataType: "json",success: function(msg) {// 在此可以對獲得的響應(yīng)數(shù)據(jù)進(jìn)行操作}
}); 注意url的值為Web服務(wù)文件的路徑后面需要加上“/”符號(hào)和調(diào)用的方法名稱。若是這個(gè)方法需要有傳入的參數(shù),則可以寫在data值中。比如調(diào)用test(string parameter)方法,data值需要設(shè)置為“{parameter:’傳入的值’}”。
使用Firefox運(yùn)行測試,可以通過Firebug工具的Console控制臺(tái)看到頁面從服務(wù)器獲得的相應(yīng):
可以看到服務(wù)器已經(jīng)將返回的結(jié)果自動(dòng)格式化為了JSON對象。要輸出這個(gè)返回的“Hello World”字符串,只需要在上面編寫的jQuery $.ajax()方法中編寫success方法為:
function(msg){varresult = $.parseJSON(msg);alert(msg.d);
} $.parseJSON()是jQuery框架中用于將字符串轉(zhuǎn)變?yōu)镴SON對象的一個(gè)非常有用的函數(shù),也就是說服務(wù)器傳回一個(gè)’{“d”:”Hello World”}’的字符串,通過這個(gè)函數(shù),就可以將它轉(zhuǎn)化為Javascript對象{d:”Hello World”},便于讀取和操作。
轉(zhuǎn)載于:https://www.cnblogs.com/jennieji/archive/2012/06/24/2748966.html
總結(jié)
以上是生活随笔為你收集整理的通过jQuery调用ASP.NET的AJAX的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Object.definePropert
- 下一篇: 浅析 JavaScript 中的 函数