在我的MVC网络应用程序中,这是使用icollection对象的模型,
public class EmpProfile
{
public int EmpProfileID { get; set; }
public string EmpName { get; set; }
public string EmpNum { get; set; }
public string ManagerEditor { get; set; }
public string DocCreatedBy { get; set; }
public virtual ICollection<PerfPlan> PerfPlans { get; set; }
public virtual ICollection<ProgReview> ProgReviews { get; set; }
}
这是PerfPlan模型,其他模型ProgReviews与此类似。
public class PerfPlan
{
public int ID { get; set; }
public int EmpProfileID { get; set; }
public string EmpName { get; set; }
public string EmpNum { get; set; }
public string Title { get; set; }
....
public virtual EmpProfile EmpProfile { get; set; }
}
基本上,它构建了EmpProfile和PerfPlan,ProgReview之间的一对多关系。因此,一个EmpProfile有0个或多个Performance Plan和Progress Review数据(模型)。现在,在我的EmpProfile索引剃刀中,我想列出与每个EmpProfile相关的所有PerfPlan和ProgReview,我构建了这样的东西:
@model IEnumerable<PerfM.Models.EmpProfile>
<table>
@foreach (var item in Model)
{
<tr class="@selectedRow">
<td >
@Html.ActionLink(@item.EmpName, "Index", new { id = item.EmpProfileID })
</td>
</tr>
//here I need to list all PerfPlan and ProgReview related to this EmpProfile and list under this row.
任何专家都可以帮我继续下面的代码吗? 非常感谢,
答案 0 :(得分:1)
只需使用这样的简单foreach循环(在foreach循环内):
foreach(var plan in item.PerfPlans)
{
// here you can access your PerfPlan properties like:
<tr>
<td> @plan.Id </td>
<td> @plan.EmpName</td>
<td> @plan.EmpNum </td>
...
</tr>
}
foreach(var review in item.ProgReviews)
{
...
}
在您的控制器中,不要忘记包含您的收藏:
var profiles = context.EmpProfiles.Include("PerfPlans").Include("ProgReviews");