Ошибка при отправке объекта JSON в asp.net WebMethod с использованием jQuery - PullRequest
2 голосов
/ 15 февраля 2011

Я получаю ошибку «Невозможно преобразовать объект типа System.String» в тип «System.Collections.Generic.List'1 [... + ContactHolder] '"

Это мой код C #:

public class ContactHolder{
    public String Name { get; set; }
    public String Address { get; set; }
}

[WebMethod]
public static string AddContact(Object items){
    List<ContactHolder> contacts = new JavaScriptSerializer().ConvertToType<List<ContactHolder>>(items);
    return String.Format("You added {0} contacts!", contacts.ToString());
}

Это мой код Javascript (обратите внимание, что я включил jquery-1.4.1.js и json2.js в мой проект)

function Test() {
var arr = new Array();
var contact = new Object();
contact.Name = "Ben";
contact.Address = "Ohio";

var contact2 = new Object();
contact.Name = "Jon";
contact.Address = "Illinois";

arr[1] = contact;
arr[2] = contact2;

var DTO = JSON.stringify(arr);
PageMethods.AddContact(DTO, OnMyMethodComplete);}

function OnMyMethodComplete(result, userContext, methodName) {alert(result);}

Когда я передаю DTO в myPageMethod, это выглядит так: "[{" Name ":" Ben "," Address ":" Ohio "}, {" Name ":" Jon "," Address ":" Illinois " }] "

Когда он появляется в моем WebMethod как элементы, он выглядит примерно так: "[{\" Name \ ": \" Ben \ ", \" Address \ ": \" Ohio \ "}, {\" Name \ " : \ "Джон \", \ "Адрес \": \ "Иллинойс \"}] "

Код ошибки при вызове JavaScriptSerializer (). ConvertToType, сообщение {{Невозможно преобразовать объект типа System.String 'в тип' System.Collections.Generic.List'1 [... + ContactHolder] ' «}

Что мне нужно сделать, чтобы сделать эту работу?

1 Ответ

4 голосов
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...