加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET Core Razor视图中的递归

发布时间:2020-12-16 06:34:14 所属栏目:asp.Net 来源:网络整理
导读:我现在有以下代码来编写一个包含控制器操作链接的项目的平面列表: ul @foreach (var item in items) { li a asp-controller="Home" asp-action="Demo" asp-route-itemName="@item.Name" @item.Name /a /li }/ul 现在这必须变为递归.项目还可以包含子项目.对
我现在有以下代码来编写一个包含控制器操作链接的项目的平面列表:

<ul>
    @foreach (var item in items)
    {
        <li>
            <a asp-controller="Home" asp-action="Demo" asp-route-itemName="@item.Name">
                @item.Name
            </a>
        </li>
    }
</ul>

现在这必须变为递归.项目还可以包含子项目.对于递归,我需要某种功能.我知道我可以使用@functions并在.cshtml文件中定义该函数.不确定是否仍然允许带有标记助手的这种漂亮的内联HTML代码,它似乎不是这样.另一个选项是.cs文件中的HTML帮助程序,这里没有内联HTML. @helper似乎不再可用了.

我还有哪些其他选项来定义函数并保留Razor提供的内联HTML语法?

解决方法

将用于呈现注释的代码放在局部视图中,并通过调用@ Html.Partial(“comment”,comment)来呈现它.

然后在那个评论局部视图中你会有类似的东西

@model Comment

Title: @Model.Title
Message: @Model.Message

@if (Model.ChildComments.Any())
{
    <ul>
        @foreach (var childComment in Model.ChildComments)
        {
            <li>
                @Html.Partial("comment",childComment)
            </li>
        }
    </ul>
}

这将递归地呈现每个注释及其所有子项(如果有).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读