Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Razor视图引擎在ASP.NET MVC5中创建html表_Asp.net_Asp.net Mvc_Razor_Razorengine - Fatal编程技术网

如何使用Razor视图引擎在ASP.NET MVC5中创建html表

如何使用Razor视图引擎在ASP.NET MVC5中创建html表,asp.net,asp.net-mvc,razor,razorengine,Asp.net,Asp.net Mvc,Razor,Razorengine,我需要创建一个如下所示的表: S1 S2 S3 S4 S5 C1 C1S1 C1S2 C1S3 C1S4 C1S5 C2 C2S1 C2S2 C2S3 C2S4 C2S5 C3 C3S1 C3S2 C3S3 C2S4 C3S5 C4 C4S1 C4S2 C4S3 C3S4 C4S5 C5 C5S1 C5S2 C5S3 C4S4 C5S5 但以下代码: <table> @foreac

我需要创建一个如下所示的表:

     S1    S2    S3    S4    S5
C1  C1S1  C1S2  C1S3  C1S4  C1S5
C2  C2S1  C2S2  C2S3  C2S4  C2S5
C3  C3S1  C3S2  C3S3  C2S4  C3S5
C4  C4S1  C4S2  C4S3  C3S4  C4S5
C5  C5S1  C5S2  C5S3  C4S4  C5S5
但以下代码:

<table>

        @foreach (var client in this.Model.Clients)
        {
            <tr>
                <td >@client.Name</td>
                @foreach (var session in this.Model.Sessions)
                {
                    foreach (var data in this.Model.ClientSessions)
                    {
                        if (data.ClientId== client.ClientId&& data.SessionId == session.SessionId)
                        {
                            <td>@data.TotalClientSessions</td>
                         }
                    }
                }
            </tr>    
        }

    </table>
我不知道如何巧妙地修改此代码以获取标题。 我会在底部添加另一个foreach,以这样创建标题行:

<tr>
    <th></th>
    @foreach (var session in this.Model.Sessions)
    {
    <th>@Session.Id</th>
    }
</tr>

@foreach(此.Model.Sessions中的var会话)
{
@会话Id
}
但我相信,还有其他更聪明的解决方案可以实现这一目标。
任何帮助都将不胜感激。

由于HTML表是逐行呈现的,而不是逐列呈现的,因此您必须在客户端上进行迭代,因此无法生成标题行作为此循环的一部分。没有丑陋的黑客。因为您可能会在列表中插入一个表示标题行的虚拟客户机,但这听起来很难听,我不建议这样做


您提出的解决方案在会话中使用单独的foreach,我觉得它非常好、最优且可读。我会用同样的方法来处理。

我觉得你的解决方案很好。是什么让你不高兴呢?这段代码不生成标题。我的意思是第一行(s1s2 s3s4s5)我不知道如何实现,因为无论我如何修改它,编译器仍然会抱怨语法错误……等等,所以第二个代码段会产生语法错误?错误是什么,在哪一行?不,第二个代码段不会产生错误。但我宁愿去掉这个额外的片段。是否可以在不使用第二个代码段的情况下绘制标题名称?(我正在寻找在第一个代码段中只使用三个嵌套循环的解决方案)
<tr>
    <th></th>
    @foreach (var session in this.Model.Sessions)
    {
    <th>@Session.Id</th>
    }
</tr>