我一直在研究EF和LINQ已经有一段时间了,我很难回答我无法收集有关我想要在下面完成的过程的答案:
在索引视图中,我想要一张包含各自内容的所有CD的表格列表。请参阅以下课程以获取更多信息:
public class Cd
{
public int cdID { get; set; }
public string cdName { get; set; }
public string tag { get; set; }
public Content Content { get; set; }
}
public class Content
{
public int contentID { get; set; }
public string contentName { get; set; }
public string category { get; set; }
}
鉴于课程,我如何实现我想要做的事情 - 使用cdID在CD下显示所有CD内容?
更新#1 - 最终答案(感谢DryadWoods)
public class Cd
{
public int cdID { get; set; }
public string cdName { get; set; }
public string tag { get; set; }
public IList<Content> Content { get; set; } //Changes here! No changes in Content class
}
观点的最终版本:
@model IEnumerable<MediaManager.Models.Cd>
<table>
<tr>
<th>CD ID</th>
<th>Content</th>
</tr>
@foreach (var cd in Model) //nested loop for displaying the cdID, then proceeds to loop on all contents under certain cdID
{
<tr>
<td>
@Html.DisplayFor(modelItem => cd.cdID)
</td>
<td>
@foreach (var item in cd.Content)
{
<p>@item.contentName</p>
}
</td>
</tr>
}
</table>
答案 0 :(得分:0)
有一个页面显示所有CD和每个内容的简单示例。
控制器:
public ViewResult Index(){
return View(db.Cd.Include(x=>x.Content).ToList());
}
查看:
@model IEnumerable<YourNamespace.Cd>
@foreach (var cd in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => user.UserName)
.... etc ...
</td>
<td>
@foreach (var c in cd.Content ) {
<div>
@c.contentName
.... etc ...
</div>
}
</td>
</tr>
}
更新#1
将课程更改为:
public class Cd
{
public int cdID { get; set; }
public string cdName { get; set; }
public string tag { get; set; }
public IList<Content> Contents { get; set; }
}
现在你有一个“内容”:)列表