剃须刀页面中生成的动态元素

时间:2019-11-02 21:13:35

标签: c# asp.net-core razor .net-core

我正在我的theseModels.cshtml中尝试实现以下目标:

<superdiv>
 <tinydiv>
 <tinydiv>
 <tinydiv>
<superdiv>

换句话说,在另外n次内有3个元素。

到目前为止,我尝试的是以下方法:

int i = 0;
@foreach (Model m in SomeModels)
{
    if (i % 3 == 0)
    {
        <superdiv>
    }
    i++;
    <tinydiv>
    </tinydiv>
    @if (i % 3 == 0)
    {
        </superdiv>
    }
}
@if (i % 3 != 0)
{
    </superdiv>
}

但是,这并不能很好地结束。实现这样的最佳方法是什么? 我想到的另一种方法是预包装服务器端,并使其返回一个数组,每个元素包含3个模型。.但是这样做似乎很愚蠢,我想在视图中使用显示逻辑。

1 个答案:

答案 0 :(得分:2)

看看我的答案here

我想您只需要在superdiv开始和结束标记之前添加razor html内容前缀@:

也将@移到foreach中if之前,因为它是非法的。