5

我有一份患者名单。Patient 类的属性之一是 PatientId,它是一个 int。我的列表初始化如下:

List<Patient> = new List<Patient>() { new Patient { PatientId = 1, 
                                                    FirstName = "Jane", 
                                                    LastName = "Doe"}};

当我在我的视图中使用以下内容访问 PatientId 时:

@Html.DisplayForModel(modelItem => modelItem.PatientId) //Error

我收到一个错误: Cannot convert lambda expression to type 'object' because it is not a delegate type

4

2 回答 2

5

DisplayForModel实际上使用显示模板来显示您的模型,并且通常在没有参数的情况下调用。如果这是您想要的,那么您将不得不制作一个新的 DisplayTemplate。对于任何感兴趣的人,这里是 Phil Haack 关于显示模板的一个很好的教程和DisplayForModelhttp ://haacked.com/archive/2010/05/05/asp-net-mvc-tabular-display-template.aspx 。

但是,如果您只想为该字段添加标签,那么您应该使用DisplayFor

@Html.DisplayFor(modelItem => modelItem.PatientId)
于 2013-04-26T18:21:34.080 回答
3

你混淆了@Html.DisplayFor()@Html.DisplayModelFor()。前者接受一个 lambda。在你的情况下,你可以使用@Html.DisplayFor(model => model.PatientId)

于 2013-04-26T18:23:39.223 回答