我使用asp.mvc 4. Assumend我有一個叫人用領域 ASP MVC剃刀存儲lambda表達式列出和重用
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; }
}
在我的自動生成的剃刀編輯視場模式如圖所示(爲了清楚,我只包括在這個崗位重要行)
@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)
}
謝謝,但這是行不通的。這導致編譯錯誤。你用這種方法成功了嗎? –
是的,它在控制檯解決方案中工作正常。我認爲Razor不支持它,或者? – Smartis