public async Task <IActionResult> GetHierarchyTree(int?parentId) { AccountHierarchy root = parentId.HasValue ? await _dbContext.AccountHierarchies.FindAsync((long)parentId) : await _dbContext.AccountHierarchies.OrderBy(a => a.Id).FirstOrDefaultAsync(); TreeBuilder treeBuilder = new TreeBuilder(_dbContext); //var account = treeBuilder.BuildHierarchyTreeRecursive(root); var account = treeBuilder.BuildHierarchyTreeRecursive(root); DefaultContractResolver contractResolver = new DefaultContractResolver { NamingStrategy = new CamelCaseNamingStrategy() }; string json = JsonConvert.SerializeObject(account, new JsonSerializerSettings { ContractResolver = contractResolver, Formatting = Formatting.Indented }); //Console.WriteLine(json); return(View("GetTree", json)); }