我有一个自动完成方法。
$("#txtSearch").autocomplete({
source: function (request, response) {
$.ajax({
url: "/Home/Getsrchresult",
type: "POST",
dataType: "json",
data: { term: request.term, location: $('#location').val() },
success: function (data) {
response($.map(data, function (item) {
return {
label: item.srchresult, value: item.srchresult
};
}))
}
})
}
});
我的控制器传递多维数组。如何将所有数据放在自动完成文本框
中控制器
var fd2 = (from r in db.Restaurants
where r.restname.ToLower().Contains(term.ToLower())
orderby r.state == location descending
select new { searchresult = r.restname ,place=r.place
}).Take(10);
return Json(fd2, JsonRequestBehavior.AllowGet);
响应是这样的
[{"srchresult":"foodtakeaway","place":"karnataka"},{"srchresult":"ssdf","place":"dfsaf"}]
答案 0 :(得分:1)
这应该有效
$("#txtSearch").autocomplete({
source: function (request, response) {
$.ajax({
url: "/Home/Getsrchresult",
type: "POST",
dataType: "json",
data: { term: request.term,location:$('#location').val() },
success: function (data) {
response($.map(data, function (item) {
return { label: item.place, value: item.place };
}))
}
})
}
});
假设您正在返回这样的JSON
[
{
"srchresult": "foodtakeaway",
"place": "karnataka"
},
{
"srchresult": "ssdf",
"place": "dfsaf"
}
]
我已将item.place
用于label和value属性,您可以根据需要将其替换为item.srchresult
。
建议: 使用MVC帮助程序方法(Url.Action
)生成操作方法的网址,而不是硬编码