在我的MVC3应用程序中使用jQuery自动完成

Onl*_*ere 1 c# jquery jquery-ui asp.net-mvc-3

我正在为我的用户制作一份注册表格,我希望他们在他们的城市写作.

因此,当他们键入城市名称时,jQuery UI组件的自动完成选项将异步加载.

页面上的示例显示了如何使用.php文件,但这如何适用于纯HTTP解决方案?

我如何获取这些选项?

我有一个使用Entity Framework和存储库模式访问的简单表:

table City
------------------
CityId int primary key,
Name nvarchar(256)
Run Code Online (Sandbox Code Playgroud)

Chr*_*nty 7

自动完成插件将使用?term=blahquerystring参数向您指定的路径发送GET请求.

您需要向控制器添加一个Action来处理此请求,并返回一个匹配值数组作为json.

public ActionResult AutoCompleteCity(string term) {
  var db = new myEFDataContext();
  return Json(db.Cities.Where(city => city.Name.StartsWith(term)).Select(city => city.Name), JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)

然后在你的javascript中你连接自动完成功能就像这样.

$('#cityTextBoxId').autocomplete({ source: '/Controller/AutoCompleteCity' });
Run Code Online (Sandbox Code Playgroud)