Jquery自动完成无法在ASP.NET MVC 5上工作

本文关键字:NET ASP MVC 工作 Jquery | 更新日期: 2023-09-27 18:01:04

  • 我正在学习的教程

嗨,我正在使用本教程实现jquery自动完成ASP.NET教程第76部分在mvc中实现自动完成文本框功能https://www.youtube.com/watch?v=MmBdMZJ3Jlo

  • 问题

当我在输入框中键入内容时,自动完成不起作用

  • 描述

我已经实现了搜索功能,它运行得很好,但我一直停留在jquery的自动完成功能上。我在谷歌上搜索了很多,以前的问题都有,我试过了,但都解决不了。

  • 代码

这是我的自动完成代码(我没有包括搜索代码(

Index.cshtml

<link href="~/Content/jquery-ui.css" rel="stylesheet" type="text/css" />
<link href="~/Content/jquery-ui.min.css" rel="stylesheet" type="text/css" />
<script src="~/Scripts/jquery-2.1.4.js" type="text/javascript"></script>
<script src="~/Scripts/jquery-ui.js" type="text/javascript"></script>
<script src="~/Scripts/jquery-ui.min.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function () {
            $("#txtSearch").autocomplete({
                source: '@Url.Action("GetAirports")'
            });
    });
</script>
 @using(@Html.BeginForm())
 {
        <br />
        <b>AirPort Code:</b>
        @Html.TextBox("SearchTerm", null, new { id="txtSearch"})
        <input type="submit" value="Search" />     
 }

和我的控制器代码

HomeController.cs

public JsonResult GetAirports(string term)
{
            traveloticketEntities db = new traveloticketEntities();
            List<String> Airports = new List<String>();
            Airports = db.IataAirportCodes.Where(x => x.code.StartsWith(term)).Select(y=>y.code).ToList();
            return Json(Airports, JsonRequestBehavior.AllowGet);
}

Jquery自动完成无法在ASP.NET MVC 5上工作

我得到了解决方案。非常感谢@mason的帮助。我在客户端控制台(使用F12的谷歌chrome控制台(上检查了我的代码,发现_Layout.cshtml在我的index.cshtml文件末尾添加了其他jQuery库,这些库覆盖了我在index.cshtml中的库。所以我从_Layout.chss 中删除了这段代码

 @Scripts.Render("~/bundles/jquery")
 @Scripts.Render("~/bundles/jqueryval")

并将我的jQuery库按以下顺序放置在Index.chtml中

<script src="~/Scripts/external/jquery/jquery.js" type="text/javascript"></script>
<script src="~/Scripts/jquery-ui-1.11.4.js" type="text/javascript"></script>
<script src="~/Scripts/myScript.js" type="text/javascript"></script>

我不确定您使用的是Visual Studio的哪个版本。2013年,我对jquery自动完成没有任何问题。然而,在2015年,他们没有包含jquery ui脚本。我必须通过nuget添加它,然后在它工作之前将它添加到bundleConfig.cs。

我的脚本部分包括以下内容:@Scripts.Render("~/bundles/jquery"(@Scripts.Render("~/bundles/jqueryval"(@Scripts.Render("~/bundles/jqueryui"(

为什么微软没有在Visual Studio 2015中包含jquery ui?我很想知道这个问题的答案。