Веб-метод на странице aspx получает и возвращает строку JSON, как?

Я экспериментировал с 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 без каких-либо намеков на это?


person Gratzy    schedule 04.05.2011    source источник


Ответы (1)


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

person Joshua Evensen    schedule 10.05.2011