Передача JSON в метод PageMethod, который ожидает параметр List <T> - PullRequest
3 голосов
/ 13 января 2010

У меня есть ASP.NET PageMethod со следующей подписью:

<WebMethod()> _
Public Shared Function SaveCodes(ByVal codes As List(Of Code)) As String

Я пытаюсь передать объект JSON в PageMethod со стороны клиента, но получаю ошибку, что тип String не может быть преобразован в тип List <Code>.

Вот json, который я собираю на клиенте и отправляю методу:

{
'коды': {
{"companyID": "00000000-0000-0000-0000-000000000000", "customerType": "1", "code": "11"},
{"companyID": "00000000-0000-0000-0000-000000000000", "customerType": "1", "code": "21"}
}
}

Вот мой вызов PageMethod, (объекты - это строка json выше):

PageMethods.SaveCodes(objects, successFn, errorFn);

Мне удалось передать простые типы данных и один экземпляр класса Code, но я не могу найти магию для передачи List в метод сервера. Может кто-нибудь показать мне, что я делаю не так?

1 Ответ

3 голосов
/ 13 января 2010

Я смог понять это. Правильные обозначения указаны ниже. Основной отсутствующей частью было свойство __type для каждого объекта. Мне нужно было покопаться в List, который был возвращен из PageMethod, чтобы найти это.

{"codes":
[  
{"CompanyID":"00000000-0000-0000-0000-000000000000","Code":"11    ","CustomerType":"1","__type":"Code"},
{"CompanyID":"00000000-0000-0000-0000-000000000000","Code":"21    ","CustomerType":"1","__type":"Code"}
]
}
...