C# 剑道MVC下拉列表未显示选定值

C# 剑道MVC下拉列表未显示选定值,c#,asp.net-mvc,kendo-ui,kendo-asp.net-mvc,C#,Asp.net Mvc,Kendo Ui,Kendo Asp.net Mvc,我在五月有一个剑道MVC下拉列表。我正在成功地将所选值从中保存到数据库中。当我来编辑数据时,该值从模型中正确返回并在下拉树中设置,但是,在下拉树中没有任何项目被视觉上选中 当我尝试通过单击按钮读取下拉树的值时,它会正确返回值 @(Html.Kendo().DropDownTree() .Name("VocationID") .DataTextField("Name") .DataValueField(

我在五月有一个剑道MVC下拉列表。我正在成功地将所选值从中保存到数据库中。当我来编辑数据时,该值从模型中正确返回并在下拉树中设置,但是,在下拉树中没有任何项目被视觉上选中

当我尝试通过单击按钮读取下拉树的值时,它会正确返回值

@(Html.Kendo().DropDownTree()
                .Name("VocationID")
                .DataTextField("Name")
                .DataValueField("Id")
                .ValuePrimitive(true)
                .Placeholder("--Select Vocation--")                            
                .Value(Model.VocationID.ToString())
                .DataSource(dataSource => dataSource
                    .Read(read => read
                    .Action("GetVocationTree", "ApplicationForm"))
                )
                .HtmlAttributes(new { style = "width: 250px;", required = "required", validationMessage = "Vocation is required" })
             )
上面的javascript警报正确返回该值,但在DropdownTree中没有显示选定的项目。我还尝试删除ValuePrimitive属性,但没有任何效果


有人能帮忙找出这里缺少什么吗?

终于找到了解决办法。如果有一天对某人有帮助,就发布它

此控件的行为稍有不同。您可以将所选项目作为ID读取,但需要设置其文本而不是ID来设置所选项目

获取项目值:

            var dropdowntree = $("#VocationID").data("kendoDropDownTree");
            var VocationID = dropdowntree.value().id;


并设置默认值:

            @(Html.Kendo().DropDownTree()
                            .Name("VocationID")
                            .DataTextField("Name")
                            .DataValueField("Id")
                            .Placeholder("--Select Vocation--")
                            .Value(Model.VocationName)

请注意“职业名称”而不是ID

            @(Html.Kendo().DropDownTree()
                            .Name("VocationID")
                            .DataTextField("Name")
                            .DataValueField("Id")
                            .Placeholder("--Select Vocation--")
                            .Value(Model.VocationName)