1

我有一个这样的递归列表:

@ShowTree(pages, 1)

@helper ShowTree(List<pages> pages, int level)
{

    <ul>
        @for (int i = 0; i < pages.Count(); i++)
        {

            <li>
                <h1>@pages[i].PageName</h1>

                @if (pages[i].children.Any())
                {
                    @ShowTree(pages[i].children, level + 1)
                }
            </li>
        }
    </ul>
}

这一切正常,但我需要列表具有以下格式:

1

1.1

1.2

1.2.1

1.2.2

1.3

等等。

我有“级别”参数的原因是早期尝试创建它,但没有运气。

<h1>另外,我需要用, <h2>, <h3>(...)来调平每个标题。

感谢所有帮助!谢谢。

4

1 回答 1

3

您可以尝试这样的事情:

@ShowTree(pages)

@helper ShowTree(List<pages> pages, int level=1, string prefix ="")
{
    <ul>
        @for (int i = 0; i < pages.Count(); i++)
        {

            <li>
                @Html.Raw(String.Format("<h{0}>", level)) @String.Format("{0}{1}", prefix, i + 1) @pages[i].PageName @Html.Raw(String.Format("</h{0}>", level))

                @if (pages[i].children.Any())
                {
                    @ShowTree(pages[i].children, level + 1, String.Format("{0}{1}.", prefix, i + 1))
                }
            </li>
        }
    </ul>
}
于 2013-09-11T08:59:28.100 回答