我正在使用 asp.mvc 4。假设我有一个名为 Person 的模型,其中包含字段
public class Person
{
public int ID { get; set; }
public string FirstName { get; set; }
public string SecondName { get; set; }
public DateTime DateOfBirth { get; set; }
public DateTime DateOfWorkstart { get; set; }
public int NumberOfChildren { get; set; }
public int DepartmentID { get; set; }
public virtual Department Department { get; set; }
}
public class Department
{
public int ID { get; set; }
public int NameOfDepartment { get; set; }
}
在我自动生成的 razor-edit-view 字段中显示如下(为了清楚起见,我只在这篇文章中包含了重要的行)
@Html.DisplayFor(modelItem => item.FirstName)
@Html.DisplayFor(modelItem => item.SecondName)
现在我想将 linq-lambda 表达式存储在一个列表中以供以后使用,我不知道该怎么做,我需要这样的东西:
@{
string itemsToShow = "namepart"; // this could also be "otherpart"
List <Expression<>> list = new List();
if (itemsToShow.equals("namepart")
{
list.add(modelItem => item.FirstName);
list.add(modelItem => item.SecondName);
}
else
{
list.add(modelItem => item.DateOfBirth);
list.add(modelItem => item.DateOfWorkStart);
list.add(modelItem => item.NumberOfChildren);
}
}
最后我想像这样使用生成的列表
@foreach (var lambda in list)
{
@Html.DisplayFor(lambda)
}