C# 如何使用Html.NameFor获取孙子集合属性的名称?

C# 如何使用Html.NameFor获取孙子集合属性的名称?,c#,javascript,asp.net-mvc,razor,C#,Javascript,Asp.net Mvc,Razor,假设我有以下几个类: class FooViewModel { // ...Other scalar properties public IEnumerable<BarViewModel> Bars { get; set; } } class BarViewModel { // ...Other scalar properties public IEnumerable<BazViewModel> Bazs { get; set;

假设我有以下几个类:

class FooViewModel
{
     // ...Other scalar properties
     public IEnumerable<BarViewModel> Bars { get; set; }
}

class BarViewModel
{
     // ...Other scalar properties
     public IEnumerable<BazViewModel> Bazs { get; set; }
}

class BazViewModel
{
     // ...Other scalar properties
}

如何获取字符串值
Bazs
(从
FooViewModel
)并将其呈现在javascript变量中?

可能是因为
bar.Bazs
正在返回一个或多个对象而不是属性?您可以在Razor代码中设置断点以查看返回的内容。顺便说一句,我们认为最好将linq放在控制器中,并将结果传递给视图。@markpsmith在上述我的类结构中,
bar.baz
是一个属性。我没有把这个
字符串
值放在我的视图模型中,因为我不想用模型绑定中未使用的信息污染我的视图模型。
<script>
     // bazs returns empty string
     var bazs = '@Html.NameFor(m => m.Bars.Select(bar => bar.Bazs))';

      // bazs returns empty string as well
     var bazs = '@Html.NameFor(m => m.Bars.SelectMany(bar => bar.Bazs))';
</script>