Как сказал Арнис , с помощью плагина Jquery это так просто!
Я делаю это, инкапсулируя код и HTML в частичном представлении как UserControl. Вы можете сделать это с помощью рекурсивной логики:
@helper ShowTree(TreeItem item, IEnumerable<TreeItem> tree)
{
var childs = folders.Where(g => g.ParentId == item.Id);
if (childs.Count() == 0)
{
<text>
<li class="last"><span class="folder">@item.Title</span></li>
</text>
}
else
{
<text>
<li class="expandable">
<div class="hitarea expandable-hitarea">
</div>
<span class="folder">@item.Title</span>
<ul style="display: none;">
@{foreach (var child in childs)
{
@ShowTree(child, folders)
}
}
</ul>
</li>
</text>
}
}