js代码中需要加上dataType:"json",说明是使用json返回数据,由于反回的json被作为一串文本处理,所以要加上parse去解释数据,并使用eval(data)将其解释为代码。
$("#CategoryName").autocomplete("GetCategoryName", {
minChars: 0,
dataType: "json",
max: 50,
autoFill: true,
matchContains: true,
scrollHeight: 220,
cacheLength: 100,
parse: function(data) {
return $.map(eval(data),
function(row) {
return {
data: row,
value: row.Name,
result: row.Name
}
}
);
},
formatItem: function(item) {
return "<font color=green>" + item.Name + "</font>";
}
});
服务器端生成json的对应action内容:
public ActionResult GetCategoryName()
{
IKciCategoryProvider kciCategoryPro = this.GetService<IKciCategoryProvider>();
//静态加载
string[] category = kciCategoryPro.ListKciCategoryByTenantId(CurrentLoginInfo.GetCurrentTenantId()).Select<KciCategory, string>(c => c.Name).ToArray();
return Json(category, JsonRequestBehavior.AllowGet);
//备用:动态加载 暂时不用
//return Json(kciCategoryPro.ListKciCategoryByTenantId(CurrentLoginInfo.GetCurrentTenantId()), "application/json",JsonRequestBehavior.AllowGet);
}