首页 > 解决方案 > 如何从停止的位置继续对列表进行编号?

问题描述

我正在从某些 API 中读取内容,内容可能以“段落”或“有序列表”的形式出现。

每次读取新记录时,我的列表顺序总是重新开始编号。示例 1.TEST 1.TEST

我的目标是显示内容如下 1.TEST 2.TEST 即使在阅读了不同的内容之后

@foreach (var x in item.copy)
        {
            if (x.type == "o-list-item")
            {
            <tr>
                <td>
                    <ol>
                        <li>
                            @Html.DisplayFor(modelItem => x.text)
                        </li>
                    </ol>
                </td>
            </tr>
            }
            else if(x.type== "paragraph")
            {
            <tr>
                <td>
                        @Html.DisplayFor(modelItem => x.text)
                </td>
            </tr>
            }
        }

我理解如果列表序列被打断,那么它是一个新的列表序列,不能是前一个列表的延续。但是,我必须做到,并且

我尝试自己自定义代码,通过连接整数 count=1 并在 for 循环读取“o-list-item”类型的内容时递增,但 DisplayFor razor 视图似乎不允许连接任何自定义变量。

 @foreach (var x in item.copy)
    {
        if (x.type == "o-list-item")
        {
         int count=1;
        <tr>
            <td>
                <ol>
                    <li>
                        count + "."+ @Html.DisplayFor(modelItem => x.text)
                        count ++;
                    </li>
                </ol>
            </td>
        </tr>
        }
        else if(x.type== "paragraph")
        {
        <tr>
            <td>
                    @Html.DisplayFor(modelItem => x.text)
            </td>
        </tr>
        }
    }

请提供任何帮助

标签: c#asp.net-mvchtml-lists

解决方案


您可以使用有序列表属性“开始”来指定开始编号。

@{int count = 1;}
@foreach (var x in item.copy)
            {
                if (x.type == "o-list-item")
                {
                <tr>
                    <td>
                        <ol start="@count++">
                            <li>
                                @Html.DisplayFor(modelItem => x.text)
                            </li>
                        </ol>
                    </td>
                </tr>
                }
                else if(x.type== "paragraph")
                {
                <tr>
                    <td>
                            @Html.DisplayFor(modelItem => x.text)
                    </td>
                </tr>
                }
            }

推荐阅读