ASP MVC视图。使树看起来像一棵树

时间:2014-11-11 16:10:38

标签: c# asp.net-mvc razor

我个人认为与该问题无关的一点背景,但它可能有用。应该显示树的控制器从WCF服务获取根节点,该节点以这种方式实现,并返回该节点的子节点列表。

[DataContract]
    public class Node
    {
        [DataMember]
        public int NodeID { get; set; }
        [DataMember]
        public string Name { get; set; }
        [DataMember]
        public int ParentID { get;  set; }
        [DataMember]
        public List<Node> children;
    }

现在到了重要的部分。我希望树在视图中看起来像一棵树,所以我也尝试根据在SO上找到的示例写出一种递归剃刀帮助器

@helper DisplayTree(IEnumerable<Project.UserService.Node> nodes)
{

        foreach (var item in nodes)
        {
            <tr>
                <td>
                    @Html.DisplayFor(modelItem => item.Name)
                </td>

                <td>
                    @Html.ActionLink("Edit", "Edit", new { id = item.NodeID }) |
                    @Html.ActionLink("Details", "Details", new { id = item.NodeID }) |
                    @Html.ActionLink("Delete", "Delete", new { id = item.NodeID })
                </td>
            </tr>
            if(item.children.Any())
            {
                @DisplayTree(item.children)
            }
        }
  @DisplayTree(Model)

模型是根节点的子节点列表。现在视图显示树中存在的所有节点,但我希望它看起来像一棵真实的树。我现在不知道如何描述它,所以一个直截了当的解释是我希望它有点让人联想到windows cmd中的文件树。但是我想在不使用除C#和Razor之外的任何东西的情况下这样做,并且当我使用jquery或js搜索所有涉及的结果时,我现在还没有。有人能给我一个正确方向的提示吗?

0 个答案:

没有答案