Linq引用使用include语句传递的对象列表

时间:2014-01-23 13:04:51

标签: c# asp.net-mvc linq

以下是我将模型传递给视图的方法:

        public ActionResult Public()
    {
        db = new Entities();

        var regions = db.Regions.Include(d => d.Days);

        return View(regions.ToList());
    }

现在我希望能够在视图中创建一个foreach,它将访问我在该特定区域的区域中包含的天数集合。有没有办法通过链接执行此操作,还是应该创建一个单独的ViewModel,其中包含分别为Regions和Days的字段?

观看代码的一部分:

...       
  @for(int i = 1; i < Model.Count(); i ++){
                <div id="_page_@i" class="frame" style="display: block;">
                    <p>
                        <button  style="width:70px" type="button">Add +</button>
                    </p>

                    <p>
            <table class="table striped bordered hovered" >
        <thead>
            <tr>
                <th class="text-left">Title</th>
                <th class="text-left">Date</th>
                <th class="text-left"> </th>
            </tr>
        </thead>
        <tbody>

            @foreach(var item in Model){
            <tr class="">
                <td>@item</td>
                <td class="right"></td>
                <td class="right" style="width: 180px; height: 35px"><button  style="width:159px; height: 32px" type="button">Delete -</button></td>
              </tr>
            }

        </tbody>

    </table>
            </p>
                </div>
                }
            </div>

        </div>

    </div>

        </div>

我需要foreach来引用区域中的天数,以便该项目为一天。

1 个答案:

答案 0 :(得分:3)

在你看来,你在foreach中做了一个foreach。在我的例子中,它将为所有地区创建一个天数列表...假设该日有一个属性“名称”:

<ul>
@foreach( var r in Model){
    foreach( var d in r.Days){
         <li>d.Name</li>
    }
}
</ul>