2010-03-01 52 views
3

請溫和一點,因爲我還不熟悉網絡編程和對Ajax非常陌生!ASP.NET/JavaScript - Ajax調用,如何?

我創建了一個C#函數,它從mssql數據庫中提取數據,將其格式化爲一個json字符串並將其返回。現在我需要通過與C#代碼文件相關的aspx頁面從我的javascript(jQuery)滑塊進行調用。

我實際上從來沒有做過這樣的事情,從我可以告訴谷歌搜索我需要使用xmlHttpRequest,但我究竟如何使該函數得到這個字符串?

如果某人有一些示例代碼展示了這個工作原理,那將會非常棒。

回答

1

如果標記C#函數作爲[的WebMethod]或使ASP.NET web服務的一部分它是用jQuery相對容易。這兩種技術都可以很容易地將響應自動轉換爲ASP.NET的JSON對象,這使得客戶端的處理更加容易(恕我直言)。

下面的例子是如果頁面有一個名爲GetDataWebMethod,但是如果你創建一個服務,那麼改變這個URL是微不足道的。

$.ajax({ url: "somepage.aspx/GetData", 
     method: "POST", // post is safer, but could also be GET 
     data: {}, // any data (as a JSON object) you want to pass to the method 
     success: function() { alert('We did it!'); } 
}); 

在服務器上:

[WebMethod] 
public static object GetData() { 
    // query the data... 
    // return as an anonymous object, which ASP.NET converts to JSON 
    return new { result = ... }; 
} 
+0

如果webmethod在頁面內部,它需要是靜態的,但如果它在web服務中不需要使其靜態。 – 2010-03-01 15:02:31

+0

偉大的提示!非常感謝 :] – cc0 2010-03-01 15:23:14

2

最簡單的方法是將您的函數轉換爲將JSON寫入HTTP響應的ASHX文件。

然後,您可以使用XmlHttpRequest調用它,但使用jQuery可以更簡單地調用它。

您可以用jQuery這樣調用:

$.get("/YourFile.ashx", function(obj) { ... }, "json"); 
+0

我會考慮的時候了,謝謝! :] – cc0 2010-03-01 15:24:24