Webmethod на странице aspx получает и возвращает строку JSON, как? - PullRequest
1 голос
/ 04 мая 2011

Я экспериментировал с jquery ajax и обнаружил следующие вещи:

Если у меня есть веб-метод, на странице aspx нет службы, которая выглядит следующим образом:

   [System.Web.Services.WebMethod]  
    public static List<Person> SearchSrf(SearchCriteria search)
    {
        List<Person> people = new List<Person>();
         //add persons to the list etc.
        return people ;
    }

И javascript, который выглядит следующим образом:

     var objSearch = new Object();
     object [FirstName] = 'Joe'
     //etc
    var DTO = { 'search': objSearch };
     then in my ajax call I set data: JSON.stringify(DTO)
  1. Если я отправляю данные методу через jquery ajax, передавая объект, созданный в javascript, со свойствами, которые соответствуют моему поисковому объекту и с именем поиска .netуспешно десериализует эту строку JSON в поисковый объект.
  2. Когда я возвращаю список, он также сериализует его в виде строки JSON.

Мой вопрос: как / почему это происходит?Я знаю, что в моем вызове ajax я устанавливаю dataType в json, но как .net понимает это без какого-либо украшения метода или другой конфигурации, чтобы сообщить ему формат.

Как / почему список возвращаемых данных сериализуется в строку JSON без какого-либо намека на это?

1 Ответ

0 голосов
/ 10 мая 2011

Я просто догадываюсь здесь, но я бы предположил, что он извлекает тип запроса из заголовков http.

...