C#foreach动态生成的HTML表

时间:2019-02-24 12:06:13

标签: c# foreach tr

@{ 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表。

但是该程序将红框上的代码识别为文本。

使红色框中的程序无法正常工作。

我该如何解决?


出现后添加@

他发现没有尽头

使以下内容成为文字

最终跳出不存在}

2 个答案:

答案 0 :(得分:0)

好的,当我将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>}

答案 1 :(得分:0)

谢谢大家解决问题。

修改后的程序如下

@ {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>