【发布时间】:2014-01-10 17:50:07
【问题描述】:
我已经浏览了这里的帖子,但没有找到可行的解决方案...
我正在为员工的下拉列表使用 JQuery 自动完成功能。我可以使用值加载列表,但它包含我正在传递的字典中的键而不是值。我想同时展示两者。
控制器代码:
public JsonResult GetEmp(string id)
{
if (id.Length > 3)
{
var result = Json(repository.SearchForEmployee(id), JsonRequestBehavior.AllowGet);
return result;
}
return null;
}
jQuery 代码:
$('.empId').keyup(function () {
var x = $('.empId').val();
var arrayValues = [];
$.ajax({
url: '../../Employee/GetEmployee',
type: "Get",
data: { id : x },
cache: false,
datatype: 'json',
traditional: true,
success: function (result) {
$.each(result, function (item) {
arrayValues.push(item);
})
$(".empId").autocomplete({
source: arrayValues
});
},
error: function (err) {
alert('Foo')
}
});
});
调试时Controller动作中的JSON结果变量:
[0] {[12345, Sharon Moore]}
[1] {[12346, Amy Adams]}
[2] {[12349, Adam Smith]}
用于自动完成的 JScript 数组的实际内容:
12345, 24563, 84565
谁能解释为什么它只引入第一个值(键)?键和值都是字符串。 再次提前感谢...
【问题讨论】:
-
您的值字符串是否需要引号?
-
当您在
console.log(result)回调中看到什么? -
控制台。日志结果是:{"1289":"KIRK BELL","1827":"LINDA JONES","1963":"LINDA SMITH"}
-
这看起来像一个对象,而不是一个数组或对象数组。
标签: javascript jquery asp.net-mvc json dictionary