.net - 使用 jQuery 将 JSON 对象发送到 asp.net WebMethod 时出错

标签 .net jquery ajax

我收到错误“无法将 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]' “}

我需要做什么才能使这项工作成功?

最佳答案

关于.net - 使用 jQuery 将 JSON 对象发送到 asp.net WebMethod 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5008781/

相关文章:

javascript - 如何将java变量传递到包含javascript的不同jsp页面?

c# - 从 javascript 渲染的页面获取 HTML 内容

javascript - 如何使用 jQuery 查找元素是否包含 id ='x' 的子元素?

jQuery - AJAX - 在成功函数中获取请求参数

javascript - 仅在事件触发时调用函数

javascript - 检测在我的 Chrome 扩展之外生成的 DOM 更改

javascript - ajax调用后初始化匿名函数

.net - SQLServerCE 来自 .NET 的参数化查询的问题

c# - 错误 1053 服务没有及时响应启动或控制请求

c# - 是否可以在针对 4.7.1 的 WinForms 项目中使用 Path.GetRelativePath (.NET Core2)?