gpt4 book ai didi

javascript - 类型 System.Collections.Generic.IDictionary 不支持反序列化数组

转载 作者:行者123 更新时间:2023-11-29 17:16:55 35 4
gpt4 key购买 nike

当使用手动构造的 JQuery.ajax 调用调用页面方法时,可能会发生此错误。

反序列化由 .NET 完成,而不是在用户代码中完成。

JavaScript:

MyParam = []; 
...
$.ajax({ type: 'POST',
url: 'PageOrService.as?x/DoSomething',
data: JSON.stringify(MyParam),
contentType: "application/json; charset=utf-8",
dataType: "json",
complete: function (a, b, c, d) { console.log(a, b, c, d); }
});

C#

[WebMethod()] 
public static void DoSomething(object ParamName)
{
ParamName.ToString();
}

最佳答案

在我的实例中,这被证明是 jquery ajax 调用中的错误数据包数据包应该是一个键值对的对象,对于网络方法,每个参数一个键。

如果你的方法有多个参数,这可能是显而易见的,但如果你不这样做,很容易假设你可以只传递参数内容:

这个:

data: JSON.stringify(MyParam), 

应该是这样的:

data: JSON.stringify({ParamName:MyParam}),

如果你知道就很明显 - 如果你不知道就挠头!

参见 my blog post了解更多信息

关于javascript - 类型 System.Collections.Generic.IDictionary 不支持反序列化数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16853851/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com