循环递归方法

本文介绍了一段使用C#语言生成HTML链接结构的方法。该方法递归地遍历链接对象,根据链接的层级和属性生成对应的HTML代码,并提供添加、编辑和删除链接的功能。
@functions
{
public string getLinks(Link link)
{
    StringBuilder linkBuilder = new StringBuilder();
    linkBuilder.Append("<div class=\"node\"");
    if (link.Parent != null)
    {
        linkBuilder.Append("style=\"display: none\"");
    }
    linkBuilder.Append(">");
    linkBuilder.Append(" <div class=\"item\">");
    linkBuilder.Append("<div class=\"item-info \">");
    linkBuilder.Append("<span class=\"text-success\">[" + link.Type.GetDisplayName() + "]</span>");
    linkBuilder.Append(" " + link.Name + "&nbsp; &nbsp; &nbsp; &nbsp; ");
    linkBuilder.Append("<a href=\"" + Url.Action(nameof(NY.TBWebApp.Controllers.Admin.LinkController.CreateLink), new { ParentId = link.Id, fromUrl = Context.Request.GetRequestUrl() }) + "\"  class=\"btn btn-info btn-sm\">添加下级</a>&nbsp; &nbsp;");
    linkBuilder.Append(" <a href=" + Url.Action(nameof(NY.TBWebApp.Controllers.Admin.LinkController.EditLink), new { Id = link.Id, fromUrl = Context.Request.GetRequestUrl() }) + " class=\"btn btn-info btn-sm\">编辑</a>&nbsp; &nbsp;");
    linkBuilder.Append("<a href=" + Url.Action(nameof(NY.TBWebApp.Controllers.Admin.LinkController.DeleteLink), new { Id = link.Id, fromUrl = Context.Request.GetRequestUrl() }) + " class=\"btn btn-info btn-sm\" onclick=\"return confirm('是否确认删除?'); \">删除</a>");
    linkBuilder.Append(" </div> <div class=\"clearfix\"></div></div>");
    foreach (var childNode in link.Childs.OrderByDescending(m => m.SortNo).ThenBy(m => m.SortNo))
    {
        linkBuilder.Append(getLinks(childNode));
    }
    linkBuilder.Append(" </div>");
    return linkBuilder.ToString();
}
}

 

转载于:https://www.cnblogs.com/njccqx/p/9671506.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值