Asp.net mvc 无法在kendo MVC树视图中获取HtmlAttributes项的值

Asp.net mvc 无法在kendo MVC树视图中获取HtmlAttributes项的值,asp.net-mvc,treeview,kendo-treeview,Asp.net Mvc,Treeview,Kendo Treeview,我正在使用Kendo MVC包装扩展从我的模型创建一个树状视图。我想通过HtmlAttributes将模型中的一些数据传递给视图。 以下是我的行动: public ActionResult Index() { var nodeList = new List<TreeViewItemModel>(); nodeList.Add(new TreeViewItemModel { Id = "1",

我正在使用Kendo MVC包装扩展从我的模型创建一个树状视图。我想通过HtmlAttributes将模型中的一些数据传递给视图。 以下是我的行动:

public ActionResult Index()
    {
        var nodeList = new List<TreeViewItemModel>();
        nodeList.Add(new TreeViewItemModel
        {
            Id = "1",
            Text = "Item 1",
            HasChildren = true,
            HtmlAttributes = new Dictionary<string, string>
            {
                {"class","XXXX"}
            },
            Items = new List<TreeViewItemModel>
                {
                    new TreeViewItemModel{Id="1.1", Text = "sub Item 1.1",HasChildren = false},
                    new TreeViewItemModel{Id="1.2", Text = "sub Item 1.2",HasChildren = false}
        });
        nodeList.Add(new TreeViewItemModel { Id = "2", Text = "Item 2", HasChildren = false });

        return View(nodeList);
    }
public ActionResult Index()
{
var nodeList=新列表();
添加(新的TreeViewItemModel)
{
Id=“1”,
Text=“第1项”,
HasChildren=正确,
HtmlatAttributes=新词典
{
{“类”,“XXXX”}
},
项目=新列表
{
新的TreeViewItemModel{Id=“1.1”,Text=“子项1.1”,HasChildren=false},
新的TreeViewItemModel{Id=“1.2”,Text=“子项1.2”,HasChildren=false}
});
添加(新的TreeViewItemModel{Id=“2”,Text=“Item 2”,HasChildren=false});
返回视图(节点列表);
}
以下是我的看法:

@using Kendo.Mvc.UI
@model IEnumerable<Kendo.Mvc.UI.TreeViewItemModel>
@(Html.Kendo().TreeView()
.Name("treeView")
   .BindTo(Model)
   .DragAndDrop(true)
            )
@使用Kendo.Mvc.UI
@模型IEnumerable
@(Html.Kendo().TreeView())
.名称(“树视图”)
.BindTo(型号)
.DragAndDrop(正确)
)
这是来自Chrome的元素

<li class="k-item k-first" data-id="1" data-uid="6263f4c5-85f3-446c-a843-7d3786fb0f68" role="treeitem" id="treeView_tv_active">

  • 正如您所见,我的li标签中没有任何类:XXX,那么我如何才能将XXX类赋予li标签?

    我不知道如何自动执行此操作,因此这里有一个解决方法

    C#将
    List()
    传递回treeview->datasource->transport->read事件:

    var items = new List<Kendo.Mvc.UI.TreeViewItemModel>();
    
    ////////////////////////////////////////////////////////////////////////////////
    
    // areas of expertise
    var aoe = new Kendo.Mvc.UI.TreeViewItemModel()
    {
        Text = "Areas of Expertise",
        Id = "resume-treeview-category-AreasOfExpertise",
        HasChildren = false,
        HtmlAttributes = new Dictionary<string, string>(){{ "class", "resume-treeview-category"}, {"cat-id", "AreasOfExpertise" }},
    
    };
    items.Add(aoe);
    
    return Json(items, JsonRequestBehavior.AllowGet);
    
    var items=newlist();
    ////////////////////////////////////////////////////////////////////////////////
    //专业领域
    var aoe=new Kendo.Mvc.UI.TreeViewItemModel()
    {
    Text=“专业领域”,
    Id=“resume treeview类别区域专家”,
    HasChildren=假,
    HtmlAttributes=new Dictionary(){{“class”,“resume treeview category”},{“cat id”,“AreasOfExperties”},
    };
    项目。添加(aoe);
    返回Json(items,JsonRequestBehavior.AllowGet);
    
    然后我钩住dataBound事件,将上述属性添加到treeview项中

    jQuery(文档).ready(函数($){
    $(“#文档树视图”).kendoTreeView({
    dataTextField:“文本”,
    数据源:{
    运输:{
    阅读:{
    键入:“POST”,
    url:“@url.Action”(“GetAllTreeData”,“Document2”)”,
    contentType:'application/json;charset=utf-8',
    数据类型:“json”
    },
    parameterMap:函数(数据,类型){
    如果(类型=“读取”){
    返回JSON.stringify({
    id:ResumeId
    });
    }
    }
    },
    模式:{
    型号:{
    id:“id”,
    hasChildren:“hasChildren”,
    儿童:“物品”
    }
    }
    },
    数据绑定:函数(e){
    //显然,在创建treeview后读取项目并不应用html属性。请在此处执行此操作。
    var len=this.dataSource.data().length;
    对于(变量i=0;i

    请注意,从C#添加的HtmlAttributes在JavaScript=/

    中显式处理,在我的情况下也会发生同样的情况。找不到答案:/