У меня есть каскадные выпадающие списки, чтобы привести список контактов для выбранной компании. Запрос контактов выбранной компании производится следующим образом с использованием запроса JSON.Каскадирование выпадающего списка с JSON не приносит новые записи
На взгляд:
$('#companyId').change(function() {
var selectedCompany = $(this).val();
if (selectedCompany != null && selectedCompany != '') {
$.getJSON('@Url.Action("Contacts")', { id: selectedCompany },
function (Contacts) {
var contactSelect = $('#contactId');
contactSelect.empty();
$.each(Contacts, function (index, contact) {
contactSelect.append($('<option/>', {
value: contact.value,
text: contact.text
}));
});
});
}
});
Контроллер:
public ActionResult Contacts(int id)
{
return Json(
db.Contacts.Where(x=>x.deleted==false).
Select(c => new { value = c.contactId, text = c.contactName, c.companyId }).
Where(t => (int)t.companyId == id).OrderBy(x=>x.text),
JsonRequestBehavior.AllowGet
);
}
Это работает хорошо. Однако этот код на стороне сервера выполняется только в первый раз для любой выбранной компании (в первом выпадающем списке). то есть. если я выберу ComanyA, а затем CompanyB и снова CompanyA, это не приведет к тому, что список контактов с сервера будет заселен из кеша. Поэтому новые контакты не заполняются, как ожидалось.
Любая помощь будет замечательной!
Итак, это так просто? Nice one ... – Kaf