如何使用 Razor View Engine 在 ASP.NET MVC5 中创建 html table
How to create html table in ASP.NET MVC5 using Razor View Engine
我需要创建一个 table,它看起来像:
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>
产出:
//here should be missing header
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
我不知道如何巧妙地修改这段代码以获得 headers。
我会在底部添加另一个 foreach 以这样创建 header 行:
<tr>
<th></th>
@foreach (var session in this.Model.Sessions)
{
<th>@Session.Id</th>
}
</tr>
但我相信,还有其他更智能的解决方案可以实现这一目标。
任何帮助将不胜感激。
由于 HTML 表格是 row-by-row 呈现的,而不是逐列呈现,您必须遍历客户端,因此无法生成 header 行作为一部分这个循环。没有丑陋的黑客就是这样。因为您可能会在表示 header 行的列表中插入一个虚拟客户端,但这听起来真的很难看,我不建议这样做。
您提出的解决方案在会话中使用单独的 foreach 对我来说看起来非常好、最佳且可读。我会以完全相同的方式处理它。
我需要创建一个 table,它看起来像:
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>
产出:
//here should be missing header
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
我不知道如何巧妙地修改这段代码以获得 headers。 我会在底部添加另一个 foreach 以这样创建 header 行:
<tr>
<th></th>
@foreach (var session in this.Model.Sessions)
{
<th>@Session.Id</th>
}
</tr>
但我相信,还有其他更智能的解决方案可以实现这一目标。 任何帮助将不胜感激。
由于 HTML 表格是 row-by-row 呈现的,而不是逐列呈现,您必须遍历客户端,因此无法生成 header 行作为一部分这个循环。没有丑陋的黑客就是这样。因为您可能会在表示 header 行的列表中插入一个虚拟客户端,但这听起来真的很难看,我不建议这样做。
您提出的解决方案在会话中使用单独的 foreach 对我来说看起来非常好、最佳且可读。我会以完全相同的方式处理它。