Я получаю ошибку «Невозможно преобразовать объект типа 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] ' «}
Что мне нужно сделать, чтобы сделать эту работу?