我正在调用一个函数来获取自动完成的来源。我的 jquery 函数调用控制器,控制器调用方法,方法调用 wcf 服务。我的 wcf 服务返回地址列表。我想知道是否有办法在第一次调用中存储地址列表(当用户仍然在视图上时),以防止每次用户使用自动完成文本框时调用服务。我尝试使用静态列表来执行此操作,但是数据库上的地址列表可以更改并且需要重新加载(至少在用户转到视图时的第一次调用中)。这是我的代码。
自动完成:
$(function () {
var availableTags = {
source: '/Address/GetAddresses/',
minLength: 4,
}
$("input.Places").live("keydown.autocomplete", function () {
$(this).autocomplete(availableTags);
});
});
控制器:
public ActionResult GetAddresses(string term)
{
var filteredItems = City.GetFilteredAddresses(term);
return Json(filteredItems, JsonRequestBehavior.AllowGet);
}
方法:
public static IEnumerable<string> GetFilteredAddresses(string term)
{
var items = AddressesService(); This method call a wcf service and return the list of addresses
var filteredItems = items.Where(
item => item.IndexOf(term, StringComparison.InvariantCultureIgnoreCase) >= 0
);
return filteredItems;
}