gpt4 book ai didi

ajax - jQuery 自动完成功能不显示 Ajax 调用返回的数据

转载 作者:行者123 更新时间:2023-12-01 01:35:06 25 4
gpt4 key购买 nike

下面是封装在 jQuery 自动完成 source 函数中的 Ajax 调用。检查 Fiddler 和 Chrome 网络控制台中的返回值,我可以看到数据正在以正确的格式返回到 View 。

但是,当用户开始键入时出现的正常项目列表不会出现。您可以根据需要快速/慢速输入任意时间/时间,并且不会出现任何内容。

我在 Controller 方法(这是一个 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
});
});

编辑

我在代码中添加了几个警报alert(data) 将触发,但 alert(value) 不会。

这是从 Chrome 调试控制台返回的 json 的副本

enter image description here

这里是 Controller 方法,它以 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);

最佳答案

$.map 函数需要一个数组/对象作为第一个参数进行枚举。引用jQuery.map .

尝试改变

$.map(function (value, key) {

$.map(data, function (value, key) {

问候。

关于ajax - jQuery 自动完成功能不显示 Ajax 调用返回的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16223417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com