У меня огромный список предметов (15000), которые нужно заполнить в выпадающем списке предметов в передней части.Следовательно, я сделал AJAX-вызов (инициируемый при выборе Компании) и этот AJAX-вызов сделан для метода действия в Контроллере, и этот метод действия заполняет список элементов службы и возвращает его обратно в вызов AJAX через ответ.Вот где мой вызов AJAX не работает.Если у меня есть около 100 - 500 предметов, вызов ajax работает.Как я могу решить эту проблему?
Код контроллера
[HttpPost]
public ActionResult GetCompanyInfo(int Name)
{
try
{
List<SelectList> lists = new List<SelectList>();
//This yields about 100 - 20000 items depending on the company
var serviceItem = cache.getServiceItems(Name).ToList();
serviceItem.Insert(0, null);
ViewBag.SelectedServiceItem = new SelectList(serviceItem, "ID", "Name", model.SelectedServiceItem);
//there are some lists here that not shown for the purpose of demonstation
lists.Add(ViewBag.SelectedServiceItem);
return Json(lists);
}
catch (Exception e)
{
log.Error(e);
return null;
}
}
Код AJAX:
$("#selectedCompany").change(function () {
$("#dashSpinner").show();
var rule = {
name: $("#selectedCompany").val(),
}
debugger;
$.ajax({
type: 'POST',
data: rule,
url: '@Url.Action("GetCompanyInfo")',
success: function (lists) {
$.each(lists[1], function (i, serviceItem) {
$("#SelectedServiceItem").append('<option value="' + serviceItem.Value + '">' +
serviceItem.Text + '</option>');
});
$.each(lists[7], function (i, product) {
$("#SelectedProduct").append('<option value="' + product.Value + '">' +
product.Text + '</option>');
});
$("#dashSpinner").hide();
}
});
});