我的Telerik MVC Dropdowntree报告了数据源错误“对象不支持属性或方法'level'”。
有人可以在下面看看并告诉我怎么了吗?
MVC看起来像这样
@(Html.Kendo().DropDownTree()
.Name("dropdowntree")
.DataTextField("Name")
.DataValueField("Id")
.HtmlAttributes(new { style = "width: 100%" })
.DataSource(dataSource => dataSource
.Read(read => read
.Action("DoLayers2", "Dev")
)
)
)
我的控制器返回以下JSON:
[
{
"Id":1,
"ParentCategoryId":0,
"Name":"First Layer",
"items":[
{
"Id":2,
"ParentCategoryId":1,
"Name":"First SubLayer1",
"items":[
]
},
{
"Id":3,
"ParentCategoryId":1,
"Name":"First SubLayer2",
"items":[
]
},
{
"Id":4,
"ParentCategoryId":1,
"Name":"First SubLayer3",
"items":[
]
}
]
},
{
"Id":5,
"ParentCategoryId":0,
"Name":"Second Layer",
"items":[
{
"Id":6,
"ParentCategoryId":5,
"Name":"Second SubLayer1",
"items":[
]
},
{
"Id":7,
"ParentCategoryId":5,
"Name":"Second SubLayer2",
"items":[
{
"Id":8,
"ParentCategoryId":7,
"Name":"Sub -3",
"items":[
]
}
]
}
]
}
]
显然我的帖子代码太多,细节也不多,所以我必须在帖子末尾写一些愚蠢的东西,以诱使系统允许我发布它。这很烦人。
答案 0 :(得分:0)
我不确定您是否可以返回整棵树并将其绑定到dropdowntree ...
如果您选中telerik's demo,您会发现它们一次只返回一个级别,因此,在您的情况下,我认为它首先只希望第一级Id:1和Id:5,然后它将自动要求每个分支的第二级... (Id:1将返回2、3、4,而Id:5将返回6、7,而Id:7将返回8)
如果每个节点都有子节点,您还必须返回:
[
{ "Id":1, "Name":"First Layer", "hasChildren": true },
{ "Id":5, "Name":"Second Layer", "hasChildren": true }
]
希望有帮助!