2013-02-11 2 views
0

Я использую метод jquery для отправки информации (а именно только идентификатора элемента #) с клиентской стороны на сервер.Ajax вызов веб-метода Asp.net с использованием JQuery

На стороне сервера есть традиционный веб-метод, реализованный для захвата переданных данных и выполнения SQL-запросов на основе этого.

Web-service-method-using-jQuery

Однако до сих пор я возвращающая одну строку на стороне сервера обратно на стороне клиента после запроса SQL.

Удовлетворение того, что было бы лучшим способом вернуть сложную серию строк ... член Идентификационный номер, дата начала, дата окончания, тип члена ... в зависимости от типа члена, может быть несколько запусков даты и даты окончания.

Должен ли я изучать XML?

+2

вы должны вернуть объект json клиенту –

+0

с объектом Json, будут ли у меня проблемы, если есть несколько значений для даты начала и окончания даты с тем же идентификатором участника? также я бы использовал eval() в javascript для разбора через мой объект? – Philo

+0

Кроме того, я хочу передать сложный набор значений с сервера на клиентскую сторону ... только. – Philo

ответ

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

+1

Я не говорю о всей базе данных. Вы можете вернуть любой объект или коллекцию данных, включая [Datatable] (http://msdn.microsoft.com/en-us/library/system.data.datatable.aspx). – ZedBee

+0

При реализации WebMethods следует избегать ручного сериализации объектов. http://encosia.com/asp-net-web-services-mistake-manual-json-serialization/ – Emyr

Смежные вопросы