Я экспериментировал с 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)
- Если я отправляю данные в метод через jquery ajax, передавая объект, созданный в javascript, со свойствами, соответствующими моему объекту поиска, и с именем поиска .net успешно десериализует эту строку JSON в объект поиска.
- Когда я возвращаю список, он также сериализует его как строку JSON.
Мой вопрос: как/почему это происходит? Я знаю, что в своем вызове ajax я установил для dataType значение json, но как .net понимает это без какого-либо оформления метода или другой конфигурации, чтобы сообщить ему формат.
Как/почему возвращаемый список сериализуется в строку JSON без каких-либо намеков на это?