我有一份病人名单.Patient类的一个属性是PatientId,它是一个int.我的列表初始化如下:
List<Patient> = new List<Patient>() { new Patient { PatientId = 1,
FirstName = "Jane",
LastName = "Doe"}};
Run Code Online (Sandbox Code Playgroud)
当我在视图中访问PatientId时,例如:
@Html.DisplayForModel(modelItem => modelItem.PatientId) //Error
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
Cannot convert lambda expression to type 'object' because it is not a delegate type
DisplayForModel实际上使用显示模板来显示模型,通常在没有参数的情况下调用.如果这是您的意图,那么您将不得不制作一个新的DisplayTemplate.对于任何感兴趣的人,这是Phil Haack在显示模板上的一个很好的教程,并且DisplayForModel:http://haacked.com/archive/2010/05/05/asp-net-mvc-tabular-display-template.aspx.
但是,如果您只想为该字段添加标签,那么您应该使用 DisplayFor
@Html.DisplayFor(modelItem => modelItem.PatientId)
Run Code Online (Sandbox Code Playgroud)