Я пытаюсь сделать каскадный выпадающий список, я отладил его и получил 3 данных. но ajax всегда возвращает сообщение «не удалось получить [объект, объект]». Я понятия не имею, где проблема. Список PaymentCode заполняется из окна просмотра, которое работает нормально.
ниже мой код. thankss
//controller
public ActionResult GetInsuranceCompany(ParamBlacklistPembayaranViewModel model, string code)
{
LoadThirdPartyDDL(string.Empty, string.Empty, code);
return View("Create", model);
}
private void LoadThirdPartyDDL(string selectedValue, string filter, string code)
{
string selectedNoRekeningSumberDana = "select_third_party";
var query = db.InsuranceCompany_CSFs.Where(x => x.DeleteSts == false && x.JenisPembayaran == code).Select(x => new { x.CompanyID, x.CompanyName }).Distinct().ToList();
Dictionary<string, string> str_paramThirdPartyNames = new Dictionary<string, string>();
str_paramThirdPartyNames.Add(string.Empty, selectedNoRekeningSumberDana);
query.ForEach(x => { str_paramThirdPartyNames.Add(x.CompanyID, x.CompanyID + " - " + x.CompanyName); });
ViewBag.ThirdParties = commons.Convert_ListOfString_To_ListOfSelectListItem(str_paramThirdPartyNames, selectedValue);
}
вид
@Html.DropDownListFor(model => model.PaymentCode, (List<SelectListItem>)ViewBag.JenisPembayarans, new { @class = "form-control" })
@Html.DropDownListFor(model => model.AddNewThirdParty, (List<SelectListItem>)ViewBag.ThirdParties, new { @class = "form-control" })
<script type="text/javascript">
$(document).ready(function () {
$("#PaymentCode").change(function () {
$("#AddNewThirdParty").empty();
$.ajax({
type: 'POST',
url: '@Url.Action("GetInsuranceCompany")',
dataType: 'json',
data: { code: $("#PaymentCode").val() },
success: function () {
$.each(states, function (i, state) {
$("#AddNewThirdParty").append('<option value="' + state.Value + '">' +
state.Text + '</option>');
});
},
error: function (ex) {
alert('Failed to retrieve.' + ex);
}
});
return false;
})
});
</script>