显示ID下的内容

时间:2012-12-13 07:57:49

标签: linq entity-framework-4 asp.net-mvc-4 ef-code-first foreign-keys

我一直在研究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>

1 个答案:

答案 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; }
    }

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