Recursion in ASP.NET Core Razor views(ASP.NET Core Razor 视图中的递归)
问题描述
我现在有以下代码来编写带有指向控制器操作的链接的平面项目列表:
I have the following code right now to write a flat list of items with a link to a controller action:
<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 似乎不再可用.
Now this must become recursive. Items can also contain subitems. For recursion I need some sort of function. I know I could use @functions and define the function in the .cshtml file. Not sure whether such nice inline HTML code with tag helpers would still be allowed there, it didn't seem so. Another option is HTML helpers in a .cs file, no inline HTML here for sure. @helper doesn't seem to be available anymore.
还有哪些其他选项可以定义函数并保留 Razor 提供的内联 HTML 语法?
What other options do I have to define a function and keep the inline HTML syntax that Razor offers?
推荐答案
将渲染注释的代码放在局部视图中,并通过调用 @Html.Partial("comment", comment) 来渲染它.
Put the code for rendering a comment inside a partial view, and render it with a call to @Html.Partial("comment", comment).
然后在那个评论部分视图中你会有类似的东西
Then within that comment partial view you'd have something like
@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>
}
这将递归地呈现每条评论及其所有子项(如果有).
This will render each comment, plus all its children (if any), recursively.
这篇关于ASP.NET Core Razor 视图中的递归的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:ASP.NET Core Razor 视图中的递归
基础教程推荐
- 从 C# 控制相机设备 2022-01-01
- 如果条件可以为空 2022-01-01
- Mono https webrequest 失败并显示“身份验证或解密失败" 2022-01-01
- 将数据集转换为列表 2022-01-01
- 在 VB6 或经典 ASP 中使用 .NET 2022-01-01
- 获取C#保存对话框的文件路径 2022-01-01
- 重新排序 WPF TabControl 中的选项卡 2022-01-01
- 更新 Visual Studio 中的 DataSet 结构以匹配新的 SQL 数据库结构 2022-01-01
- SonarQube C# 分析失败“不是指针的有效行偏移" 2022-01-01
- C# 9 新特性——record的相关总结 2023-04-03
