Ajax-вызов веб-метода Asp.net с использованием Jquery

Я использую метод jquery для отправки информации (а именно только идентификации члена #) со стороны клиента на сторону сервера.

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

Метод-веб-службы, использующий-jQuery

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

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

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


person Philo    schedule 11.02.2013    source источник
comment
вы должны вернуть объект json клиенту   -  person Sam Tyson    schedule 11.02.2013
comment
с объектом Json у меня возникнут проблемы, если для одного и того же идентификатора члена есть несколько значений для даты начала и окончания? также буду ли я использовать eval() в javascript для анализа моего объекта?   -  person Philo    schedule 11.02.2013
comment
Кроме того, я хочу передать сложный набор значений с сервера на сторону клиента... только.   -  person Philo    schedule 12.02.2013


Ответы (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);
}

Дело в том, что вы можете сериализовать любой тип объекта, массива, коллекции и т. д., а затем передать его обратно вызывающему скрипту.

person ZedBee    schedule 12.02.2013
comment
Можете ли вы рассказать о другом методеReturningdt(id)? и что значит вернуть базу данных? Это приложение без сохранения состояния, какой эффект будет иметь возврат всей базы данных? - person Philo; 12.02.2013
comment
Я не говорю о всей базе данных. Вы можете вернуть любой объект или набор данных, включая Datatable< /а>. - person ZedBee; 12.02.2013