2017-10-16 47 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是的,我錯過了第二個循環去通過每個'機器'。將探討這一點。 –