我有一个JavaScript中的对象列表,我需要传递给ASP.NET WebService。
目前我将ScriptManager包含在我的页面中:
<asp:ScriptManager runat="server">
<Services>
<asp:ServiceReference Path="/ws_data.asmx" />
</Services>
</asp:ScriptManager>
声明WebMethod:
[WebMethod(true)]
public object SaveData(my_package.MyObject[] objects)
{
// ...
}
从JavaScript调用该方法:
var parameters = '['+
+ '{"PlayerId":11, "Pos":12, "Flang":13"},'
+ '{"PlayerId":21, "Pos":22, "Flang":23"}'
+ ']';
ws_data.SaveData(parameters, OnComplete, OnError, OnTimeOut);
当调用方法时,调用接收者'OnError'并显示错误消息:
Cannot convert object of type 'System.String' to type 'my_package.MyObject[]'
我的代码有什么问题?
我对使用过的技术(JSON,Web服务,JavaScript)都没有太多的经验,并且在不同的假设中丢失了。
请指教,欢迎任何帮助!
P.S。更改格式以匹配JSON规范(由codenoire建议):
var parameters = [
{"PlayerId":11, "Pos":12,"Flang":13},
{"PlayerId":21, "Pos":22,"Flang":23 }
];
当只传递了一个对象时,这有助于实现可行的简化案例,但传递数组仍会产生相同的错误。
答案 0 :(得分:1)
试试这个:
var parameters = [{"PlayerId":11, "Pos":12,"Flang":13}, {"PlayerId":21, "Pos":22,"Flang":23 }];