关于linq:在ID下显示内容

Displaying content under an ID

我已经学习了很长一段时间的英孚和LINQ,我很难在我试图完成的过程中找到答案:

在索引视图中,我想要一个包含所有CD及其各自内容的列表。更多信息请参见以下课程:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 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)

1
2
3
4
5
6
7
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
}

视图的最终版本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
@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>


一个简单的例子是,有一个页面可以显示所有CD和每个CD的内容。

控制器:

1
2
3
    public ViewResult Index(){
           return View(db.Cd.Include(x=>x.Content).ToList());
    }

观点:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    @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 ) {
             
                   @c.contentName
                   .... etc ...
             
            }
        </td>            
    </tr>
     }

更新第1号

将类更改为:

1
2
3
4
5
6
7
 public class Cd
    {
        public int cdID { get; set; }
        public string cdName { get; set; }
        public string tag { get; set; }
        public IList<Content> Contents { get; set; }
    }

现在您有了一个"目录"列表:()