@{ int count = 0;}
@if (Model != null)
{
<table style="width:100%" border="1">
@foreach (var item in Model)
{
@if (count == 0)
{
<tr>
}
<td style="width:25%">
<table>
<tr><td>@Html.DisplayFor(model => item.Item_Title)</td></tr>
<tr><td>@Html.DisplayFor(model => item.Item_Content)</td></tr>
<tr><td>@Html.DisplayFor(model => item.Item_Author)</td></tr>
</table>
</td>
@if (count == 3)
{
</tr>
}
@if (count == 3)
{ count = 0; }
else (count != 3)
{ count++; }
}
</table>
}
正如标题所说,
我尝试使用FOREACH在HTML中动态生成表。
但是出现了问题。
我的逻辑是动态生成一个4 * N表。
但是红色框上的代码被程序识别为文本。
导致红色框中的程序无法正常工作。
我该如何解决?
他发现没有尽头
使以下内容成为文本
最后跳出来不存在}
好吧,当我将If条件的输出放到Html.Raw时,这似乎能够编译:
@{ int count = 0;}
@if (Model != null)
{
<table style="width:100%" border="1">
@foreach (var item in Model)
{
if (count == 0)
{
@Html.Raw("<tr>")
}
<td style="width:25%">
<table>
<tr><td>@Html.DisplayFor(model => item.Item_Title)</td></tr>
<tr><td>@Html.DisplayFor(model => item.Item_Content)</td></tr>
<tr><td>@Html.DisplayFor(model => item.Item_Author)</td></tr>
</table>
</td>
if (count == 3)
{
@Html.Raw("</tr>")
}
if (count == 3)
{ count = 0; }
else if (count != 3)
{ count++; }
}
</table>}
谢谢大家解决这个问题。
修订后的计划如下
@ {int count = 0;}
@if(Model != null)
{
<table style="width:100%" border="1">
@foreach (var item in Model)
{
if(count == 0)
{
@:<tr>
}
<td style="width:25%">
<table>
<tr><td>@Html.DisplayFor(model => item.Item_Title)</td></tr>
<tr><td>@Html.DisplayFor(model => item.Item_Content)</td></tr>
<tr><td>@Html.DisplayFor(model => item.Item_Author)</td></tr>
</table>
</td>
if(count == 3)
{
@:</tr>
}
if(count == 3)
{ count = 0; }
else
{ count++; }
}
</table>
}
</td>