如何在剃刀中创建具有多个列的表行

时间:2019-06-11 15:52:12

标签: c# razor model-view-controller

我无法解决该问题。基本上,从数据库中获取数据的方式是,应用程序有多行,但每一行都是唯一的,您可能有一个名称相同的应用程序,但每一行都有不同的联系人或网址。我想以更好的格式显示此数据,而不是直接从数据库中查看每一行

示例行https://imgur.com/a/GfPpCBi

这就是我希望数据出现的方式,现在该应用程序将为每个联系人和URL设置一行。我希望该应用程序仅显示一次。我正在使用C#

在Razor NET CORE中进行此操作

这是我当前的代码,该代码显示每行重复的应用程序名称

当前代码https://imgur.com/a/LRFkNkW

我对Razor和NET CORE还是很陌生,所以这是一个学习过程

1 个答案:

答案 0 :(得分:0)

使用几个for-each循环,我能够以所需的方式打印数据。这样做似乎是一种不好的方法,我仍在寻找替代方法,但现在可以了。

    <tbody>
        @foreach(var l in Model.names)
        {
            <tr>
                <td>
                    @Html.DisplayFor(modelItem => l.appName)
                </td>

                <td>
                    @Html.DisplayFor(modelItem => l.Location)
                </td>

                <td>
                    @foreach (var k in Model.contacts)
                    {
                        if(k.appName == l.appName)
                        {                    
                            @Html.Raw(k.contactName + " - " + k.contactRole + "<br>")  
                        }    
                    }
                </td>

                <td>
                    @foreach(var s in Model.filteredURls)
                    {
                        if(s.appName == l.appName)
                        {
                             @Html.Raw(s.urls + "<br>")
                        } 
                    }
                </td>
            </tr>
        }
    </tbody>

一个问题是,我必须从DB引入的数据(名称,联系人,filteredUrls)创建3个单独的列表,以防止重复数据。

  

结果保存查询数据

     
    

名称= result.GroupBy(x => x.appName).Select(group => group.First());

  

这将删除所有重复的信息