У меня есть проблема, связанная с тем, что обычные System.Web.UI.WebControls с @ (Html.TreeView (Model) не реализованы в ASP.NET Core. Возможно ли реализовать иерархическое представление дерева с рекурсией, используя только Razor, html
Вот моя модель узла дерева:
public class EmployeeTree
{
public EmployeeTree()
{
Reporters = new List<EmployeeTree>();
}
public int Id { get; set; }
public int? ManagerId { get; set; }
[Required]
[MaxLength(30)]
public string FirstName { get; set; }
[Required]
[MaxLength(30)]
public string SecondName { get; set; }
[Required]
[MaxLength(30)]
public string Position { get; set; }
public string Phone { get; set; }
public virtual EmployeeTree Manager { get; set; }
public virtual List<EmployeeTree> Reporters { get; set; }
}
Я пробовал такую рекурсию Razor с помощником @functions, но он не загружал дочерние элементы. Любые предложения, что не так?
@using System.Text
@functions{
void GetEmployeeTree(EmployeeTree data)
{
StringBuilder output = new StringBuilder();
output.Append("Employee");
output.Append("<li>");
output.Append(data.FirstName);
if (data.Reporters.Count > 0)
{
foreach (var dataNode in data.Reporters)
{
output.Append("<ul>");
output.Append(dataNode.FirstName);
GetEmployeeTree(dataNode);
output.Append("</ul>");
}
}
output.Append("</li>");
}
}