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