2015-10-07 66 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; 
} 
相關問題