2012-05-16 144 views
0

我正在使用MVC 4 Beta,但這似乎不是特定於MVC 4.我是MVC的新手,所以這可能只是我需要指出正確的方向。謝謝!爲什麼我的視圖模型的屬性不顯示?

我使用的是定義爲一個視圖模型...

public class PatientWithVisits 
{ 
    public Patient Patient { get; set; } 

    public IEnumerable<Visit> Visits { get; set; } 

} 

在我看來,我使用的HTML幫助(LabelFor,在這種情況下),並通過lambda表達式通過我的屬性,如這@Html.LabelFor(model => model.VisitId)

我開始挖掘,很快我意識到自己的錯誤。視圖模型沒有VisitId屬性。但是,解決問題並不像找到問題那麼簡單。

我試着將model => model.VisitId更改爲model => model.Visits.VisitId,但那並不奏效。如我所料,model的intellisense包括PatientVisits。但是,Visits不包含我期待看到的Visit的任何屬性,如VisitIdVisits集合的智能感知僅包含擴展方法。

這是怎麼回事,我如何獲得我的Visit的屬性來顯示?

+0

Visits屬性是Visit的集合,因此您需要迭代訪問其屬性。如果你想測試它沒有迭代,你可以試試這個模型=> model.Visits.First()。VisitId – hjgraca

回答

0

您還需要一個屬性添加到您的視圖模型稱爲ViewId

+0

我很困惑。 'List '中的每個'Visit'都有一個VisitId。我錯過了什麼? – Joe

+0

要使用HTML助手,您的VisitId必須可用,而無需向下鑽取到對象屬性中以檢索它。 – TheGeekYouNeed

1

訪問是一個集合,但集合中的每個單獨的Visit將有一個VisitId。要按照要求簡單顯示它們:

@foreach (var visit in Model.Visits) 
{ 
    @visit.VisitId 
} 
相關問題