1

我已经研究 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>
4

1 回答 1

0

一个简单的例子,有一个页面,您可以在其中显示所有 CD 和每个 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; }
    }

现在你有一个“内容”列表:)

于 2012-12-13T08:05:43.317 回答