自动完成功能无法在asp.net mvc中运行

时间:2014-09-11 13:21:33

标签: asp.net-mvc jquery-autocomplete

我正在尝试创建一个文本框,当用户开始搜索某个名称时会自动完成,但它无效。 以下是我的观点:

  <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);
            }

我错过了什么吗?因为当我开始写时,我的文本框没有显示任何用户。

1 个答案:

答案 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/