Невозможно Json.Serialize массив объектов внутри ViewModel - PullRequest
0 голосов
/ 05 апреля 2019

На странице сценария Razor моего приложения ASP.NET Core 2.1 я использовал следующий код для преобразования свойства из массива объектов модели в текстовый массив JavaScript:

var xyz = @Json.Serialize(Model.Select(x => x.PropName).ToArray());

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

var xyz = @Json.Serialize(Model.NestedObjArray.Select(x => x.PropName).ToArray());

, я получаю следующую ошибку: Cannot use a lambda expression as an argument to a dynamically dispatched operation without first casting it to a delegate or expression tree type.

Я пытался выразить это как статья следующим образом:

var xyz = @Json.Serialize(Model.Po.Select(x => new Po { PoNumber = x.PoNumber })

1 Ответ

1 голос
/ 05 апреля 2019

@T3.0 ... Я бы оставил это как комментарий, но в данный момент мне не хватает 2 очков репутации.

Вам необходимо присвоить свое Model лямбда-выражение нединамической переменной перед попыткой сериализации - даже назначение 'var' будет работать, оно не должно быть неявно приведенной переменной.Тогда вы сможете выполнить присваивание переменной xyz.

Подробнее см. Этот похожий вопрос.
Невозможно использовать лямбда-выражение в качестве аргумента для динамически отправляемой операции без предварительногоприведение к типу дерева делегатов или выражений

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...