Asp.net mvc 剑道树景扩展器不来了

Asp.net mvc 剑道树景扩展器不来了,asp.net-mvc,telerik,kendo-ui,kendo-asp.net-mvc,kendo-treeview,Asp.net Mvc,Telerik,Kendo Ui,Kendo Asp.net Mvc,Kendo Treeview,我正在创建一个剑道树视图,如下所示 @(Html.Kendo().TreeView() .Name("treeview") .Template("<a class='edit-link' onclick=javascript:EditNode(#= item.id #) href='\\#'>#= item.text #</a> <a class='add-link' onclick=javascript:AddNode(#= item.id #) href='

我正在创建一个剑道树视图,如下所示

@(Html.Kendo().TreeView()
.Name("treeview")
.Template("<a class='edit-link' onclick=javascript:EditNode(#= item.id #) href='\\#'>#= item.text #</a>   <a class='add-link' onclick=javascript:AddNode(#= item.id #) href='\\#'>Add</a>")
.HtmlAttributes(new { @class = "demo-section" })
.DataSource(source =>
{
    source.Read(read => read.Action("Read_TemplateData", "Role"));
})    
)
@(Html.Kendo().TreeView()
.名称(“树视图”)
.模板(“”)
.HtmlAttributes(新的{@class=“demo section”})
.DataSource(source=>
{
Read(Read=>Read.Action(“Read_TemplateData”,“Role”);
})    
)
在控制器的动作中,我像

public ActionResult Read_TemplateData(string id)
{
        IEnumerable<KendoTreeviewModel> result;
        var AllPrivileges = ContextService.GetAllPrivilege(Evry.Ecompanion.Web.Common.SessionManager.AuthorizedInfo.UserId);
        if (string.IsNullOrEmpty(id))
        {

            result = AllPrivileges.Where(p => p.Id == p.ParentPrivilegeId).Select(p => new KendoTreeviewModel { text = p.Name, id = p.Id,expanded=false, items = GetChilderns(p.Id) }).ToList();
        }
        else
        {
            result = AllPrivileges.Where(p => p.ParentPrivilegeId == Convert.ToInt32(id, CultureInfo.InvariantCulture) && p.Id != Convert.ToInt32(id, CultureInfo.InvariantCulture)).Select(p => new KendoTreeviewModel { text = p.Name, id = p.Id}).ToList();
        }

        return Json(result, JsonRequestBehavior.AllowGet);
}
public List<KendoTreeviewModel> GetChilderns(int id)
{
        var AllPrivileges = ContextService.GetAllPrivilege(Evry.Ecompanion.Web.Common.SessionManager.AuthorizedInfo.UserId);
        return AllPrivileges.Where(p => p.ParentPrivilegeId == Convert.ToInt32(id, CultureInfo.InvariantCulture) && p.Id != Convert.ToInt32(id, CultureInfo.InvariantCulture)).Select(p => new KendoTreeviewModel { text = p.Name, id = p.Id }).ToList();
}
public ActionResult读取模板数据(字符串id)
{
可数结果;
var AllPrivileges=ContextService.GetAllPrivilege(Evry.Ecompanion.Web.Common.SessionManager.AuthorizedInfo.UserId);
if(string.IsNullOrEmpty(id))
{
result=AllPrivileges.Where(p=>p.Id==p.ParentPrivilegeId)。选择(p=>newkendotreeviewmodel{text=p.Name,Id=p.Id,expanded=false,items=GetChilderns(p.Id)});
}
其他的
{
result=AllPrivileges.Where(p=>p.ParentPrivilegeId==Convert.ToInt32(id,CultureInfo.InvariantCulture)&&p.id!=Convert.ToInt32(id,CultureInfo.InvariantCulture)).Select(p=>new-KendoTreeviewModel{text=p.Name,id=p.id}.ToList();
}
返回Json(结果,JsonRequestBehavior.AllowGet);
}
公共列表GetChilderns(int-id)
{
var AllPrivileges=ContextService.GetAllPrivilege(Evry.Ecompanion.Web.Common.SessionManager.AuthorizedInfo.UserId);
返回AllPrivileges.Where(p=>p.ParentPrivilegeId==Convert.ToInt32(id,CultureInfo.InvariantCulture)&&p.id!=Convert.ToInt32(id,CultureInfo.InvariantCulture)).Select(p=>new-KendoTreeviewModel{text=p.Name,id=p.id}.ToList();
}
而viewmodel就像

public class KendoTreeviewModel
{
    [DataMember]
    public int id { get; set; }
    [DataMember]
    public string text { get; set; }
    [DataMember]
    public bool expanded { get; set; }
    [DataMember]
    public List<KendoTreeviewModel> items { get; set; }

}
公共类KendoTreeviewModel
{
[数据成员]
公共int id{get;set;}
[数据成员]
公共字符串文本{get;set;}
[数据成员]
公共布尔扩展{get;set;}
[数据成员]
公共列表项{get;set;}
}
结果是父列表和子列表都出现了,但是树视图中的扩展器没有出现

输出不带treeview expander,仅显示父节点。 请任何人帮我解决这个问题

提前感谢,,
鲁莽

您没有将Id传递给控制器

source.Read(Read=>Read.Action(“Read_TemplateData”,“Role”,new{id=#=item.id}))

您需要hasChildren属性才能获取子记录

KendoTreeviewModel
类中添加此属性
hasChildren

改变

 result = AllPrivileges.Where(p => p.Id == p.ParentPrivilegeId).Select(p => new KendoTreeviewModel { text = p.Name, id = p.Id,expanded=false, items = GetChilderns(p.Id) }).ToList();


您没有将Id传递给控制器

source.Read(Read=>Read.Action(“Read_TemplateData”,“Role”,new{id=#=item.id}))

您需要hasChildren属性才能获取子记录

KendoTreeviewModel
类中添加此属性
hasChildren

改变

 result = AllPrivileges.Where(p => p.Id == p.ParentPrivilegeId).Select(p => new KendoTreeviewModel { text = p.Name, id = p.Id,expanded=false, items = GetChilderns(p.Id) }).ToList();