我收到错误“无法将 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 时出现代码错误,消息为 {"Cannot conversion object of type System.String' to type 'System.Collections.Generic.List'1[...+ContactHolder]' “}
我需要做什么才能使这项工作成功?
最佳答案
Passing parameter to WebMethod with jQuery Ajax
删除 JSON.stringify
或这样做:
sending JSON object successfully to asp.net WebMethod, using jQuery
关于.net - 使用 jQuery 将 JSON 对象发送到 asp.net WebMethod 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5008781/