簡體   English   中英

ASP.NET Core Razor視圖中的遞歸

[英]Recursion in ASP.NET Core Razor views

我現在有以下代碼來編寫一個包含控制器操作鏈接的項目的平面列表:

<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>
}

這將遞歸地呈現每個注釋及其所有子項(如果有)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM