我正在尝试创建一个文本框,当用户开始搜索某个名称时会自动完成,但它无效。 以下是我的观点:
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/cupertino/jquery-ui.css" type="text/css" rel="Stylesheet" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#txtSearch").autocomplete({
source: '@Url.Action("pesquisarUsuario")',
minLength: 0
});
});
</script>
<h2>Index</h2>
@using (@Html.BeginForm())
{
@Html.TextBox("pesquisa", null, new { id = "txtPesq" })
<input type="submit" value="Pesquisar" />
}
这是我的控制器:
public JsonResult pesquisarUsuario(string term)
{
List<string> usuario;
usuario = db.usuario.Where(u => u.nomecompleto.StartsWith(term))
.Select(u => u.nomecompleto).ToList();
return Json(usuario, JsonRequestBehavior.AllowGet);
}
我错过了什么吗?因为当我开始写时,我的文本框没有显示任何用户。
答案 0 :(得分:1)
首先尝试 usuario 返回任何内容。 : - )
尝试使用您的浏览器:http://localhost:port/yourcontroller/pesquisarUsuario?term=t
它应该返回以&#39; t&#39;。
开头的所有记录如果它没有返回任何内容,这是你的问题。
如果是,请尝试设置完整网址:
$(document).ready(function () {
$("#txtSearch").autocomplete({
source: 'http://yourserver/yourcontroller/pesquisarUsuario',
minLength: 0
});
});
修改强>: 我已经使用一个完整的示例创建了本教程:http://r2d2.cc/2014/09/11/autocomplete-jquery-ui-with-asp-net-mvc-simple-example/