无法Json。序列化ViewModel内部的对象数组

时间:2019-04-05 00:59:34

标签: c# asp.net-mvc linq

在我的ASP.NET Core 2.1应用程序的Razor脚本页面上,我使用以下代码将属性从模型的对象数组转换为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

我已经尝试过像这样article这样表达自己的表情:

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

1 个答案:

答案 0 :(得分:1)

@ T3.0 ...我想在此发表评论,但目前我没有2个声誉点。

在尝试序列化之前,您需要将Model lambda表达式分配给非动态变量-即使'var'分配也可以使用,它不必是隐式强制转换的变量。然后,您应该可以对xyz变量进行赋值。

有关此问题的更多信息。
Cannot use a lambda expression as an argument to a dynamically dispatched operation without first casting it to a delegate or expression tree type