2012-05-16 95 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 
} 
相关问题