在我的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 })
答案 0 :(得分:1)
@ T3.0 ...我想在此发表评论,但目前我没有2个声誉点。
在尝试序列化之前,您需要将Model
lambda表达式分配给非动态变量-即使'var'分配也可以使用,它不必是隐式强制转换的变量。然后,您应该可以对xyz
变量进行赋值。