无法使Jquery自动完成在ASP.NET MVC中工作

时间:2015-08-22 18:27:40

标签: c# jquery asp.net-mvc-4 razor autocomplete

我无法自动完成工作。我怀疑这是因为我在Jquery方法中声明了URL。我该如何解决这个问题?

这是HomeController中的方法:

   public JsonResult Autocomplete(string term)
        {
            string connectionString = ConfigurationManager.ConnectionStrings["AbintegroModelContext"].ConnectionString;
            List<string> CompanyName = new List<string>();
            string query = string.Format("select distinct CompanyName from CompanyTable where CompanyName like '%{0}%'", term);
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                using (SqlCommand cmd = new SqlCommand(query, connection))
                {
                    connection.Open();
                    SqlDataReader reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                        CompanyName.Add(reader["CompanyName"].ToString());
                    }
                }
            }
            return Json(CompanyName, JsonRequestBehavior.AllowGet);
        }

这是索引视图:

<body>
    <script src="~/Scripts/jquery-1.8.2.js"></script>
    <script src="~/Scripts/jquery-ui-1.8.24.js"></script>
    <script>
    $(function () {
        $("#CompanyName").autocomplete({
            source: function (request, response) {
                var param = { companyName: $('#CompanyName').val() };
                $.ajax({
                    url: '@Url.Action("Autocomplete", "Home")',
                    data: JSON.stringify(param),
                    datatype: "json",
                    type: "GET",
                    contentType: "application/json; charset=utf-8",
                    dataFilter: function (data) {
                        response($.map(data.d, function (item) {
                            return {
                                value: item
                            }
                        }))
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        var err = eval("(" + XMLHttpRequest.responseText + ")");
                        alert(err.Message)
                        console.log("Ajax Error!");
                    }
                });
            },
            minLength: 2 //min legth of textbox input
        });
    });
    </script>

...稍后在同一视图中我有html帮助文本框CompanyName。

 @Html.TextBox("CompanyName", null, new { @class = "indexTextbox" })

1 个答案:

答案 0 :(得分:0)

我没有尝试在我的最后重新创建这个问题。 您是否使用过浏览器的代码检查器来查看是否返回了任何错误?

您也可以尝试将jquery代码放在$(document).ready()函数中,看看是否有帮助。