C# Telerik Treeview MVC

C# Telerik Treeview MVC,c#,model-view-controller,telerik,C#,Model View Controller,Telerik,我正试图与Telerik Treeview在MVC和C#中合作。 我有3个模型,只需要2个级别的节点(根节点和子节点)。 我需要根节点是第一个模型,子节点是第三个模型。 两者都由第二个模型链接 下面是我所做的代码: @using Hant.Material.ValueObject.Domain @using Hant.Material.Web.Models @model IEnumerable<DescriptivePatternModel> @{ Html.Teleri

我正试图与Telerik Treeview在MVC和C#中合作。 我有3个模型,只需要2个级别的节点(根节点和子节点)。 我需要根节点是第一个模型,子节点是第三个模型。 两者都由第二个模型链接

下面是我所做的代码:

@using Hant.Material.ValueObject.Domain
@using Hant.Material.Web.Models

@model IEnumerable<DescriptivePatternModel>

@{
    Html.Telerik().TreeView()
        .Name("treeView")
        .ExpandAll(true)
        .BindTo(Model, mapping => mapping
            .For<DescriptivePatternModel>(binding => binding
                .Children(descriptivePattern => descriptivePattern.Items)
                .ItemDataBound((i, descriptivePattern) =>
                {
                    i.Text = descriptivePattern.Name;
                    i.Value = descriptivePattern.Id.ToString();

                })
            )
            .For<ItemModel>(binding => binding
                .ItemDataBound((i, item) =>
                {
                    i.Text = item.VersionDate.ToString();
                    i.Value = item.Id.ToString();
                })
            )            
            ).Render();
}
@使用Hant.Material.ValueObject.Domain
@使用Hant.Material.Web.Models
@模型IEnumerable
@{
Html.Telerik().TreeView()
.名称(“树视图”)
.ExpandAll(正确)
.BindTo(模型,映射=>映射
.For(绑定=>绑定
.Children(descriptivePattern=>descriptivePattern.Items)
.ItemDataBound((i,descriptivePattern)=>
{
i、 Text=descriptivePattern.Name;
i、 Value=descriptivePattern.Id.ToString();
})
)
.For(绑定=>绑定
.ItemDataBound((i,item)=>
{
i、 Text=item.VersionDate.ToString();
i、 Value=item.Id.ToString();
})
)            
).Render();
}

在这段代码中,我只能访问第二个模型。

也许您可以尝试以下方法:

Children(descriptivePattern => descriptivePattern.Items.First().ThirdModelCollection)

我也有同样的问题。您需要一些东西从控制器返回json结果。在action方法中创建一个TreeViewItem,绑定它并将其作为jsonresult返回。注意treeview项目是如何返回的。根据您的情况,您可以返回treeviewitem

例如:

publicJSONResult刷新组(组currentGroup,int-rootUserGroupId)
{
parentId=新列表{rootUserGroupId};
var groupsTree=新列表{GetGroupHierarchy(currentGroup,rootUserGroupId)};
var treeViewItem=新的treeViewItem();
BindTo(groupsTree,mappings=>
{
mappings.For(binding=>binding
.ItemDataBound((项目,组)=>
{
item.Text=group.GroupName;
item.Value=group.GroupID.ToString();
item.LoadOnDemand=true;
})
.儿童(组=>组.亚组);
});
返回新的JsonResult
{
数据=新
{
ExpandedNodes=parentId,
Nodes=treeViewItem.Items
}
};
}
 public JsonResult RefreshGroups(Group currentGroup, int rootUserGroupId)
    {
        parentIds = new List<int> { rootUserGroupId };
        var groupsTree = new List<Group> { GetGroupHierarchy(currentGroup, rootUserGroupId) };


        var treeViewItem = new TreeViewItem();
        treeViewItem.BindTo(groupsTree, mappings =>
                                            {
                                                mappings.For<Group>(binding => binding
                                                .ItemDataBound((item, group) =>
                                                                    {
                                                                        item.Text = group.GroupName;
                                                                        item.Value = group.GroupID.ToString();
                                                                        item.LoadOnDemand = true;
                                                                    })
                                                .Children(group => group.SubGroups));
                                            });

        return new JsonResult
                   {
                       Data = new
                                  {
                                      ExpandedNodes = parentIds,
                                      Nodes = treeViewItem.Items
                                  }
                   };
    }