【问题标题】:Cannot get Jquery autocomplete to work in ASP.NET MVC无法让 Jquery 自动完成功能在 ASP.NET MVC 中工作
【发布时间】:2015-11-16 12:37:45
【问题描述】:

我无法让自动完成功能正常工作。我怀疑这是因为我在 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" })

【问题讨论】:

  • 尝试在您的 ajax 调用中将类型更改为“GET”,您收到响应了吗? console.log 可能有助于查看您在 ajax 调用中得到的响应。

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


【解决方案1】:

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

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

【讨论】:

  • 我已将其更改为这个并将家庭控制器中的 jsonresult 重命名为 Autocomplete。还是行不通! :(
猜你喜欢
  • 2010-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-09
相关资源
最近更新 更多