在foreach C#中分割HTML表格

我正在尝试生成一个html表,每25行之后,我想将其拆分并启动一个新表。问题是c#能够在foreach循环中看到我的html代码,并将其视为损坏的代码。解决方法是什么?

@{
    int counter = 1;
    foreach (var collection in Model.Collections)
    {
        if (counter % 25 == 0)
        {
            </tbody></table>
                <table class='table table__next'> 
                  <tbody>
                <tr>
                    <td>37.18.3019</td>
                    <td>c21351900000055</td>
                    <td>nope</td>
                    <td>888ml</td>
                    <td>154.8 g/l</td>
                    <td>165/88</td>
                    <td>189754</td>
                    <td>9999/99 99.99.9999</td>
                </tr>
        } else {
                <tr>
                <td>37.18.3019</td>
                <td>c21351900000055</td>
                <td>nope</td>
                <td>888ml</td>
                <td>154.8 g/l</td>
                <td>165/88</td>
                <td>189754</td>
                <td>9999/99 99.99.9999</td>
            </tr>
        }
            counter++;
    }
}

当前结果:https://prnt.sc/pvw1st

zcg345 回答:在foreach C#中分割HTML表格

尝试使用 Html.Raw("</tbody></table>")

使用Html.Raw()函数,您可以将任何字符串写入html,而不会解析错误。

,

您可以使用@ Html.Raw

<table>
<tbody>       
@{
        int counter = 0;
        foreach (var collection in Model.Collections)
        {
            if (counter % 25 == 0)
            {
                @Html.Raw("</tbody></table><table><tbody>");
            }
            <tr>
                <td>37.18.3019</td>
                <td>c21351900000055</td>
                <td>nope</td>
                <td>888ml</td>
                <td>154.8 g/l</td>
                <td>165/88</td>
                <td>189754</td>
                <td>9999/99 99.99.9999</td>
            </tr>
            counter++;
        }
    }
</tbody>
</table>
,

您可以使用the @: syntax or a <text> tag向Razor引擎指示这是要发出的内容,而不是服务器端代码。例如:

if (counter % 25 == 0)
{
    <text>
        </tbody></table>
        <table class='table table__next'> 
            <tbody>
                <tr>
                    <td>37.18.3019</td>
                    <td>c21351900000055</td>
                    <td>nope</td>
                    <td>888ml</td>
                    <td>154.8 g/l</td>
                    <td>165/88</td>
                    <td>189754</td>
                    <td>9999/99 99.99.9999</td>
                </tr>
    </text>
}

或者:

if (counter % 25 == 0)
{
    @:</tbody></table>
    @:<table class='table table__next'> 
    @:    <tbody>
    @:        <tr>
    @:            <td>37.18.3019</td>
    @:            <td>c21351900000055</td>
    @:            <td>nope</td>
    @:            <td>888ml</td>
    @:            <td>154.8 g/l</td>
    @:            <td>165/88</td>
    @:            <td>189754</td>
    @:            <td>9999/99 99.99.9999</td>
    @:        </tr>
}

(后者通常仅用于单行输出,前者通常用于较大的块,但此处出于完整性的考虑而显示)。

要在这些块中使用服务器端代码,请使用在任何地方使用的相同的@语法:

<text>
    <p>This is a server-side value: @myValue</p>
</text>
本文链接:https://www.f2er.com/3117220.html

大家都在问