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/

Другие вопросы по тегам