2015-02-11 45 views
0

导致我有剑道下拉列表如下为什么剑道的DropDownList不能用JSON初始化从控制器动作

<%= 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); 
} 

但下拉列表填充[目标对象。添加以下内容到Html.Kendo()DropDownList()

.DataTextField("Description") 
.DataValueField("Id") 

dropdownlist填充[undefined]。我需要帮助。谢谢。

+0

你最后一个方法中的'sports'变量是什么? – chiapa 2015-02-11 12:46:08

+0

sports是名称为“Id”和“Description”的List 。 – user585440 2015-02-11 22:42:51

+0

你有体育模型吗?也许这可以工作:'返回Json(sports.Select(s => new SportsModel {Description = s.Description,Id = s.id})。Distinct(),JsonRequestBehavior.AllowGet);' – chiapa 2015-02-12 09:56:46

回答

1

改变DisciplinesBySportAjax()后,以

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

    return Json(sports, JsonRequestBehavior.AllowGet); 
} 

它工作得很好,尽管它仍然需要DataTextField( “说明”)和DataValueField( “ID”)。

相关问题