c#foreach动态生成的HTML表

问题描述 投票:0回答:2

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

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

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

我该如何解决?


Added @ after the occurrence

他发现没有尽头

使以下内容成为文本

最后跳出来不存在}

c# foreach tr
2个回答
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>}

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>
© www.soinside.com 2019 - 2024. All rights reserved.