私は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)
}