2015-10-07 50 views
1

我有一个viewmodel类有两个属性(它们都是其他类的对象)。我能够使用MVC中的ViewModel的访问属性

@Model.Parent.ParentProperty1 

访问父类中的变量,但我不能够访问的变量在子类的声明

@Model.Child.Property1 

我的视图模型(节选)

public virtual Parent parent {get;set} 
public virtual IEnumerable<Child> Children {get;set;} 

子类在其定义中具有对父类的引用。

什么,我试图实现

我想从子类访问parent属性。类似于

@Model.Child.ParentProperty1 
     or 
@Model.Child.Property1 

当我尝试访问属性时,intelisense建议我可以应用在IEnumerable上的函数。

有没有办法通过我可以访问属性值?

PS:我想访问变量sin我的视图。

+1

您的模型没有名为'Child'的属性。它有一个名为'Children'的'IEnumerable ',因此假设它至少包含一个元素,它将是'@ Model.Children [0] .SomeProperty'或'@foreach(Model in Model,Children中的var child){@ child.SomeProperty} –

+0

@StephenMuecke:感谢您的评论:) :) ..我应该访问变量名称为“IEnumerable”的属性。我通常会用同一个名字来避免混淆。 – Vini

回答

1

那么intellisense是正确的。您正试图访问IEnumerable。您可以使用ElementAt-function访问IEnumerable中的特定元素。这里是第一个元素的例子:

@Model.Children.ElementAt(0) 

我的猜测是你想循环你的子元素?你可以通过使用foreach

@foreach(var child in Model.Children) 
{ 
    var parent = child.Parent; 
} 
相关问题