質問

ASP.NET Webフォームと隠された値を使用して、ノックアウトViewModelを保存して、シリアル化後に次のページに渡します。

ko.toJSON(viewModel) 戻り値 [{}] ViewModelに要素がない場合。これをJavaScript Serializerに渡すと、文字列には弦として「null」があるため、爆発します。

var stringValue = MyHiddenField.Value

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

JavaScriptSerializerによって空のJSONを処理する方法はありますか?

ありがとう

役に立ちましたか?

解決

これはおそらく、あなたがこのようにあなたの観測可能性を初期化しているために起こる:

var a = ko.observable();

これを行うと、の包装されていない値があります a 未定義になります。 Ko.tojsonは、未定義の値でプロパティをシリアル化することはありません。これを防ぐために、最も簡単な方法は、このような観察結果を初期化することです。

var a = ko.observable(null);

シリアル化では、これにより「A」:nullが発生します。これは、JavaScriptSerializerが消化できるはずです。

これが例を備えたフィドルです。コンソールを確認してください。 http://jsfiddle.net/v87ky/1/

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top