ko.toJSON & JavaScriptSerializer проблема
Я использую веб-форму asp.net и скрытое значение для хранения моей нокаутированной модели представления для перехода на следующую страницу после сериализации.
ko.toJSON(viewModel)
возвращается [{}]
в случае, если у viewmodel нет элемента. Когда это передается в сериализатор javascript, он взрывается, потому что строка имеет значение "ноль" в качестве строки.
var stringValue = MyHiddenField.Value
var listOfObjects = new JavaScriptSerializer().Deserialize<List<MyObjects>>(stringValue);
Есть ли способ обработать пустой JSON с помощью JavascriptSerializer?
Спасибо
1 ответ
Это, вероятно, происходит потому, что вы инициализируете свои наблюдаемые, как это:
var a = ko.observable();
Если вы сделаете это, развернутое значение a
будет неопределенным ko.toJSON вызывает встроенную функцию JSON.stringify, которая не сериализует свойства с неопределенными значениями. Чтобы предотвратить это, проще всего инициализировать ваши наблюдаемые, как это:
var a = ko.observable(null);
При сериализации это приведет к "a":null, который JavaScriptSerializer должен уметь переваривать.
Вот скрипка с примерами, проверьте консоль: http://jsfiddle.net/v87Ky/1/