我有一個下拉列表,我需要根據另一個的選擇動態填充。這一切都可以達到我必須先清除列表之後才能在下拉列表中呈現新數據的程度。列表清除,但是然後無法填充從控制器返回的新數據。我正在嘗試爲此使用.each。從jsonresult使用.each填充dropdownlist
這裏是有問題的控制器方法:
[AcceptVerbs(HttpVerbs.Get)]
public JsonResult UpdateDocumentSubType(string DocumentType)
{
List<SelectListItem> DocumentSubTypeList = new List<SelectListItem>();
PropertyModel model = new PropertyModel();
int DocTypeID = 0;
//get DocTypeID
DocTypeID = model.GetDocTypeID(DocumentType);
//gets new document subtype list
DocumentSubTypeList = model.GetDocumentSubTypes(DocTypeID);
//return document subtype list
return Json(DocumentSubTypeList, JsonRequestBehavior.AllowGet);
}
正如你所看到的,我返回列表的序列化JSON結果。
在看,我有以下幾點:
$.ajax({
url: '@Url.Action("UpdateDocumentSubType","Document")',
type: 'GET',
dataType: "json",
data: { DocumentType: SelectedDocTypeText },
async: true,
success: function (data) {
var select = $("#Docs_DocumentSubTypeID");
select.empty();
$.each(data, function (index, item) {
select.append($('<option></option>').val(item).html(index));
});
}
});
這是一切分崩離析。代碼命中select.empty():併成功執行它,但作爲SelectListItem的「文本」值,它提供了對象數組的索引元素。本質上,標籤呈現如下:
<option value="[object Object]">1</option>
<option value="[object Object]">2</option>
<option value="[object Object]">3</option>
<option value="[object Object]">4</option>
我已驗證數據是否被傳遞。當我使用.each並將其放入自己的函數時,調用該函數並添加「調試器」。對此,我可以將所得到的「數據」中的數據看作[object,object]的四個元素。你可能已經猜到了,JQuery並不是我的強項,所以任何幫助都不勝感激。 :)
你在'data'中得到了什麼。你能把這個花在你的問題上嗎? –