0

我正在使用 asp.net 网络表单和一个隐藏值来存储我的淘汰视图模型,以便在序列化后传递到下一页。

ko.toJSON(viewModel)[{}]如果 viewmodel 中没有元素,则返回。当它被传递给 javascript 序列化程序时,它会爆炸,因为字符串具有“null”作为字符串。

var stringValue = MyHiddenField.Value

var listOfObjects = new JavaScriptSerializer().Deserialize<List<MyObjects>>(stringValue);

有没有办法通过 JavascriptSerializer 处理空 JSON?

谢谢

4

1 回答 1

1

这可能是因为您正在像这样初始化 observables:

var a = ko.observable();

如果你这样做,解包的值a将是未定义的。ko.toJSON 调用原生 JSON.stringify 函数,它不会序列化具有未定义值的属性。为了防止这种情况,最简单的方法是像这样初始化你的 observables:

var a = ko.observable(null);

在序列化时,这将导致 JavaScriptSerializer 应该能够消化的 "a":null。

这是一个例子,检查控制台:http: //jsfiddle.net/v87Ky/1/

于 2013-11-07T18:39:39.327 回答