Ниже вызов Ajax, завернутый внутри автозаполнения jQuery source
. проверяя возвращаемое значение в Fiddler, а также в консоли консоли Chrome, я вижу, что данные возвращаются в представление и в правильном формате.jQuery autocomplete не отображает данные, возвращенные с вызова Ajax
Однако обычный список элементов, возникающих при вводе пользователем, не отображается. Вы можете набрать так же быстро и медленно, сколько хотите, и ничего не появится.
Я установил точку останова в методе контроллера (это сайт ASP MVC), чтобы убедиться, что часть программы функционирует нормально, и она срабатывает каждый раз.
Я всего лишь несколько недель новичок в jQuery, поэтому любая помощь будет принята с благодарностью. Благодаря!
$(function() {
$('#DRMCompanyId').autocomplete({
source: function (request, response) {
$.ajax({
url: '@Url.Action("compSearch", "AgentTransmission")',
type: 'GET',
dataType: 'json',
data: request,
success: function (data) {
alert(data);
response($.map(function (value, key) {
alert(value);
return {
label: value,
value: key
};
}));
}
});
},
minLength: 1
});
});
EDIT
Я добавил пару alerts
к коду. alert(data)
будет стрелять, но alert(value)
не будет.
Вот копия возвращенного json
от отладки консоли Хрома
А вот метод контроллера, который возвращает пару ключ/значение в виде Dictionary
объекта.
XmlNamespaceManager nsmgr = new XmlNamespaceManager(xmlDoc.NameTable);
nsmgr.AddNamespace("m", "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata");
nsmgr.AddNamespace("d", "http://schemas.microsoft.com/ado/2007/08/dataservices");
Dictionary<string, string> companies = new Dictionary<string, string>();
foreach (XmlNode childNode in parentNode)
{
if (!String.IsNullOrWhiteSpace(childNode["content"].InnerText))
{
try
{
string name = childNode["title"].InnerText;
string id = childNode["content"].InnerText.Substring(0, 6);
companies.Add(id, name);
}
catch (Exception ex)
{
}
}
}
return Json(companies, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
results = ex.InnerException.ToString();
}
return Json(results, JsonRequestBehavior.AllowGet);
вы можете показать свой json? –
Вы имеете в виду возвращенные значения или где они установлены в контроллере? – NealR
Я имею в виду возвращенный json .. –