为什么我的视图模型的属性不显示?

时间:2012-05-16 16:20:59

标签: asp.net-mvc

我正在使用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的智能感知包括PatientVisits。但是,Visits未包含我期望在Visit中看到的任何属性,例如VisitIdVisits集合的intellisense仅包含扩展方法。

发生了什么以及如何获取Visit的属性?

2 个答案:

答案 0 :(得分:1)

访问是一个集合,但集合中的每个Visit都有一个VisitId。只需按要求显示它们:

@foreach (var visit in Model.Visits)
{
    @visit.VisitId
}

答案 1 :(得分:0)

您还需要向ViewModel添加一个名为ViewId

的属性