2013-02-11 94 views
0

我正在使用jquery方法,從客戶端發送信息(即只有成員標識#)到服務器端。Ajax調用Asp.net Web方法使用jQuery

服務器端實現了傳統的Web方法,以捕獲數據發送並基於它執行SQL查詢。

Web-service-method-using-jQuery

但是到現在爲止我已經從服務器端的SQL查詢後返回了一個字符串返回給客戶端。

想知道什麼是最好的方式來返回一系列複雜的字符串...成員身份證號碼,開始日期,結束日期,成員類型...根據成員的類型,可以有多個開始日期和結束日期。

我應該看看XML嗎?

+2

你應該返回一個json對象到客戶端 – 2013-02-11 19:44:33

+0

與Json對象我會有問題,如果有多個值的開始日期和結束日期在同一個成員ID下? 也我會使用JavaScript中的eval()解析通過我的對象? – Philo 2013-02-11 19:47:41

+0

此外,我想將從服務器到客戶端的複雜值集合傳遞給客戶端。 – Philo 2013-02-11 21:12:04

回答

1

怎麼樣,甚至返回一個DataTable

$.ajax({ 
type: "POST", 
url: "YourPage.aspx/doSomething", 
data: "{'id':'1'}", 
dataType: "json", 
contentType: "application/json; charset=utf-8", 
success: function (data) { 
    var returnedstring = data.d; 
    var jsondata = $.parseJSON(data.d);//if you want your data in json 
    } 
}); 

ASPX:

[WebMethod] 
public static string doSomething(int id) 
{ 
    .... 
    DataTable dt = new DataTable(); 
    dt = anothermethodReturningdt(id) 

    return JsonConvert.SerializeObject(dt); 
} 

可以使用json.net序列化.NET對象

編輯

你也可以做這

[WebMethod] 
public static string doSomething(int id) 
{ 
    Product product = new Product(); 
    product.Name = "Apple"; 
    product.Expiry = new DateTime(2008, 12, 28); 
    product.Price = 3.99M; 
    product.Sizes = new string[] { "Small", "Medium", "Large" }; 

    return JsonConvert.SerializeObject(product); 
} 

重點是你可以序列化任何類型的對象,數組,集合等,然後將它傳遞迴調用腳本。

+0

你能詳細介紹anothermethodReturningdt(id)嗎?還有什麼意思返回一個數據庫?這是一個無狀態的應用程序,返回整個數據庫有什麼樣的效果? – Philo 2013-02-12 16:48:29

+1

我不是在談論整個數據庫。您可以返回任何類型的對象或數據集合,包括[Datatable](http://msdn.microsoft.com/en-us/library/system.data.datatable.aspx)。 – ZedBee 2013-02-12 18:42:04

+0

實施WebMethods時,應避免手動序列化對象。 http://encosia.com/asp-net-web-services-mistake-manual-json-serialization/ – Emyr 2014-04-24 15:33:47

相關問題