Передача данных из контроллера пользовательского интерфейса в Javasript приводит к потере некоторых данных

#javascript #c# #asp.net #.net #json

#javascript #c# #asp.net #.net #json

Вопрос:

Я возвращаю свои данные из своего контроллера пользовательского интерфейса, и у меня есть два объекта одного типа в данных, которые являются определенной сущностью. Вы можете видеть, что они оба содержат значения, и если вы полностью развернете их, им будут присвоены правильные значения.

Контроллер пользовательского интерфейса

Теперь, если вы посмотрите в javascript, он теряет все значения для второго объекта того же типа. Я показываю один из объектов данных в консоли

Изображение JS

Мне просто интересно, знает ли кто-нибудь, что происходит, и возможно ли передать объект данных с помощью Json, который содержит две сущности одного типа для каждого объекта данных.

Спасибо!

Комментарии:

1. Похоже, у вас включено сохранение ссылок на объекты в сериализаторе JSON. Проверьте newtonsoft.com/json/help/html/PreserveObjectReferences.htm .

2. Да, я считаю, что вы правы. Собираюсь разобраться в этом.

Ответ №1:

Этот javascript исправил мою проблему, поскольку теперь ссылочные значения выглядят как фактические значения. Я знаю, что 4 жестко запрограммированы, но в возвращаемом наборе есть только каждые 4 элемента, и они всегда имеют одинаковые значения для них, за исключением одного столбца, поэтому жестко запрограммированное значение 4 приемлемо в этом случае.

 options.data.forEach(function (element) {
            if (element.FromCurrency.$ref == 4 amp;amp; element.ToCurrency.$ref == 4) {
                element.FromCurrency = options.data.find(x => x.ToCurrency.$id = '4').ToCurrency;
                element.ToCurrency = options.data.find(x => x.ToCurrency.$id = '4').ToCurrency;
            }
            else if (element.ToCurrency.$ref == 4) {
                element.ToCurrency = options.data.find(x => x.ToCurrency.$id = '4').ToCurrency;
            }
        });