2017-10-16 49 views
0

我有两个类:StoreMachine使用剃刀显示相关数据语法

现在我已经构建其中I显示关联于登录的用户的Stores的图:

public async Task<IActionResult> Index() 
    { 
     var Tiendas = await _context.Stores.Where(t => t.Usuario == User.Identity.Name).Include(t => t.Machines).ToListAsync(); 

     LiqIndexData Liquid = new LiqIndexData() 
     { 
      StoreL = Tiendas, 

     }; 

     return View(Liquid); 
    } 

在此代码我还添加asociated到每个StoreMachines

的观点:

在我看来,我想目前,每个Store,所有注册的Machines的。对于此我使用NAV-突片

导航基于的Stores

<ul class="nav nav-pills"> 
    @foreach (var item in Model.StoreL) 
    { 
     <li><a href="#@item.StoreID" data-toggle="tab">@item.StoreName</a></li> 
    } 
</ul> 
<div class="tab-content"> 
    @foreach (var item in Model.StoreL) 
    { 
     <div class="tab-pane fade in active" id="@item.StoreID"></div> 
    } 

存在的问题的数量选项卡:

信息在每个导航选项卡的主体示出:

我试图访问每个Machine与每个相关的信息。为此我试图使用:

@foreach (var item in Model.StoreL) 
{ 
    <tr> 
     <td> 
       @Html.DisplayFor(modelItem => item.Machines 
       .Where(m=>m.StoreID==item.StoreID)) 
     </td> 

但我不知道如何访问该属性。如果我尝试:

​​

我得到:

“的IEnumerable”不包含“PropertyXYZ”,没有扩展方法“PropertyXYZ”接受式“的IEnumerable”的第一个参数可以是一个定义发现(您是否缺少使用指令或装配参考?)

有什么建议吗?

+0

你不应该需要你的'Where()'调用; 'Machines'导航属性将自动按外键过滤。 – SLaks

+0

您需要第二个嵌套循环 - 'foreach(item.Machines中的var机器){​​@ machine.PropertyXYZ}' –

+0

没有'PropertyXYZ'是因为Where()'返回一个集合,集合没有该属性。 – derloopkat

回答

0

由于错误是想告诉你,你的收藏Machine s没有PropertyXYZ

根据你真正想要做什么,你可以使用First()来获得只有一个Machine(并没有其他人),或使用循环来通过所有这些。

+0

uhm是的,我错过了第二个循环去通过每个'机器'。将探讨这一点。 –