使用Razor语法显示相关数据

时间:2017-10-16 21:58:55

标签: c# asp.net-mvc razor

我有两个课程:StoreMachine

现在我构建了一个视图,其中显示与已登录用户关联的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);
    }

在此代码中,我还为每个Machines添加了Store

视图:

在我的视图中,我想为每个Store提供所有Machines注册的内容。为此,我使用导航标签

根据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相关联的每个Store的信息。为此,我试图使用:

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

但我不知道如何进入该物业。如果我尝试:

@Html.DisplayFor(modelItem => item.Machines
              .Where(m=>m.StoreID==item.StoreID).PropertyXYZ)

我明白了:

  

&#39; IEnumerable的&#39;不包含&#39; PropertyXYZ&#39;的定义没有扩展方法&#39; PropertyXYZ&#39;接受类型&#39; IEnumerable&#39;的第一个参数。可以找到(你错过了使用指令或程序集引用吗?)

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

由于错误试图告诉您,您的Machine集合没有PropertyXYZ

根据您实际想要做的事情,您可以使用First()只获得一个Machine(而不是其他人),或者使用循环来完成所有这些操作。