時,我有一個下拉列表劍道劍道DROPDOWNLIST不能調用操作方法如下爲什麼初始化
<%= 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 }
}
[HttpPost]
public ActionResult DisciplinesBySportAjax(string sportId)
{
var sports = this._sportBL.GetDisciplinesBySport(sportId);
return new JsonResult
{
Data = new SelectList(sports, "Id", "Description")
};
}
但奇怪的是,它不datasource.read執行DisciplinesBySportAjax並沒有數據出現在DropDownList。當更改爲BindTo替換DataSource時,它工作正常,但我不知道如何在Jquery中動態地重新加載其內容。謝謝。
謝謝,DisciplinesBySportAjax在刪除[HttpPost]後執行。但是dropdownlist是空的。問題是什麼?返回jsonResult是否正確? – user585440 2015-02-11 07:04:30
那麼你的代碼一般對我來說似乎有點奇怪。首先或所有,爲什麼你創建JsonResult?使用Json()方法。它處理你的東西,所以你不必擔心它們。其次,如果你不使用Post請求,你必須允許獲取JSON行爲。使用JSON方法應該有一個重載或在你的JsonResult。另外考慮不要返回一個SelectList。當你使用它時,你發送了一堆垃圾。最後,您可以在下拉列表中設置DataValueField和DataTextField,以確保它使用正確的字段。 – Pluc 2015-02-11 13:36:07
這段代碼是來自Telerik MVC2的舊代碼。我已經更改爲Json(),但它仍然無法正常工作。請訪問http://stackoverflow.com/questions/28448824/why-kendo-dropdownlist-can-not-be-initialized-by-json-result-from-controller-act?noredirect=1#comment45236254_28448824。歡迎您提出任何意見。 – user585440 2015-02-11 22:46:10