为什么 Kendo DropDownList 无法由 json 控制器操作的结果初始化

Why Kendo DropDownList can not be initialized by json result from controller action

我有一个 Kendo 下拉列表如下

<%= Html.Kendo().DropDownList()
        .Name("AssignDisciplineId")
        .DataSource(dataSource =>
             {
                dataSource.Read(read =>
                {  
                    read.Action("DisciplinesBySportAjax","Shared").Data("onDisciplinesBySportData");                        
                });
             })
        .Events(events => events    
                 .Change("onAssignDisciplineComboChanged")
               )
        .HtmlAttributes(new { style = "font-size:8pt;" })
%>

function onDisciplinesBySportData(e)
{
    var sportId = $('#AssignSportsId').data('kendoDropDownList').value();
    return { sportId: sportId }
}

public JsonResult DisciplinesBySportAjax(string sportId)
{
     var sports = this._sportBL.GetDisciplinesBySport(sportId);

     return Json(new SelectList(sports, "Id", "Description"), JsonRequestBehavior.AllowGet); 
}

但是下拉列表中填满了 [object object]。在 Html.Kendo().DropDownList()

添加以下内容后
.DataTextField("Description")
.DataValueField("Id")

下拉列表中填满了 [undefined]。我需要这方面的帮助。谢谢。

将 DisciplinesBySportAjax() 更改为

public JsonResult DisciplinesBySportAjax(string sportId)
{
    var sports = this._sportBL.GetDisciplinesBySport(sportId);

    return Json(sports, JsonRequestBehavior.AllowGet);
}

它工作正常,尽管它仍然需要 DataTextField("Description") 和 DataValueField("Id")。