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 とそれぞれのコンテンツを表示する 1 つのページを持つ単純な例。

コントローラ:

    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 に答える