我在javascript中有以下内容:
$('#tags').on("change", function (d) {
var x = JSON.stringify($('#tags').val());
var y = '{ "tags": "' + $('#tags').val() + '" }';
$.ajax({
cache: false,
url: "ModuleDesigner.aspx/SaveTags",
type: "POST",
data: y,
contentType: "application/json; charset=utf-8",
dataType: "json",
error: function (xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(err.Message);
}
});
});
x = [“锅炉”,“冷水机组”]
y = {“tags”:“Boilers,Chillers”}
JSONLint将它们声明为有效的JSON,但只有当我将数据设置为y时才会运行SaveTags WebMethod。 (我发现这很难调试,因为当我将数据更改为x时它会无声地失败)
我更愿意传递x定义的数据。有没有办法做到这一点?如果这被认为是有效的JSON,它为什么会失败?
我添加了错误例程。当我通过x时,我收到错误:
Type 'System.Collections.Generic.IDictionary`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]' is not supported for deserialization of an array.