如何在Razor中结束标签而不抱怨没有开始标签

本文关键字:标签 开始 Razor 结束 | 更新日期: 2023-09-27 18:02:00

我得到了这个代码:

@foreach (var team in Model.GetTeams)
{
    var i = 0;
    foreach (var employee in team.Medewerkers)
    {
        if (i == 0)
        {
            @:<li class="flip-card">
                @:<div class="flip-card-back">
                @:</div>
                i=1;                                    
        } 
        else
        {
                @:<div class="flip-card-front">
                @:</div>
            @:</li>
            i = 0;
        } 
    }
    if (i == 1)
    {
        </li>
    }
}

现在,一个团队中可能有3名员工,因此li标签永远不会关闭。所以我想在末尾添加一个if语句来检查是否为i == 1,这样我就可以关闭li标记,但当我使用此代码时,Razor抱怨我关闭了一个从未启动的标记。

我该如何实现这个目标?

如何在Razor中结束标签而不抱怨没有开始标签

看起来您希望在每两名员工之后关闭<li class="flip-card">,或者在员工数量为奇数时在最后一名员工之后。例如,当有2名员工时,您需要此输出

<li class="flip-card">
    <div class="flip-card-back">
    </div>
    <div class="flip-card-front">
    </div>
</li>

当有3名员工时,你想要这个输出

<li class="flip-card">
    <div class="flip-card-back">
    </div>
    <div class="flip-card-front">
    </div>
</li>
<li class="flip-card">
    <div class="flip-card-back">
    </div>
</li>    

与其将i的值更改为01,我建议继续将i的值加1,并使用%运算符检查i的当前值是奇数还是偶数。只有当i为奇数或i等于team.Medewerkers.Count - 1时,才应添加闭合</li>。将您的代码更改为以下

@foreach (var team in Model.GetTeams)
{
    var i = 0;
    foreach (var employee in team.Medewerkers)
    {
        if (i == 0 || i % 2 == 0)
        {
            @:<li class="flip-card">
                @:<div class="flip-card-back">
                @:</div>
        } 
        else
        {
                @:<div class="flip-card-front">
                @:</div>
        }
        if (i % 2 == 1 || i == team.Medewerkers.Count - 1)
        {
            </li>
        }
        i++;  
    }
}