Javascript Ajax自动完成搜索不';不显示结果

Javascript Ajax自动完成搜索不';不显示结果,javascript,jquery,ajax,asp.net-mvc,Javascript,Jquery,Ajax,Asp.net Mvc,我正在尝试实现我的第一个every quick search功能,它在您键入时在下拉列表中显示可能的结果。我想我真的很接近。但由于某些原因,快速结果不会显示在浏览器中 以下是视图中的代码: @using (Ajax.BeginForm("Search", "Home", new AjaxOptions { HttpMethod = "GET", InsertionMode = InsertionMode.ReplaceWith, UpdateTargetId = "sea

我正在尝试实现我的第一个every quick search功能,它在您键入时在下拉列表中显示可能的结果。我想我真的很接近。但由于某些原因,快速结果不会显示在浏览器中

以下是视图中的代码:

@using (Ajax.BeginForm("Search", "Home", new AjaxOptions
{
    HttpMethod = "GET",
    InsertionMode = InsertionMode.ReplaceWith,
    UpdateTargetId = "searchResults"
}))
{
    <input type="text" name="q" data-autocomplete="@Url.Action("QuickSearch", "Home")" />
    <input type="submit" value="Search" />
}

<table id="searchResults"></table>
最后,这里有一个JavaScript,它应该将所有这些结合在一起:

/// <reference path="jquery-1.4.4-vsdoc.js" />
/// <reference path="jquery-ui.js" />
/// <reference path="jQuery.tmpl.js" />

$(document).ready(function () {

$(":input[data-autocomplete]").each(function () {
    $(this).autocomplete({ source: $(this).attr("data-autocomplete") });
});
$(":input[data-datepicker]").datepicker();

$("#searchForm").submit(function () {
    $.getJSON($(this).attr("action"),  // the url to get JSON from
              $(this).serialize(),     // make q=yellow, for example
              function (data) {      // what to do with the response
                  var result = $("#searchTemplate").tmpl(data);
                  $("#searchResults").empty()
                             .append(result);
              }
        );
        return false;
    });
})
//
/// 
/// 
$(文档).ready(函数(){
$(“:输入[数据自动完成]”)。每个(函数(){
$(this.autocomplete({source:$(this.attr(“数据自动完成”)});
});
$(“:输入[data datepicker]”).datepicker();
$(“#搜索表单”).submit(函数(){
$.getJSON($(this.attr(“action”),//从中获取JSON的url
$(this).serialize(),//例如,使q=yellow
函数(数据){//如何处理响应
var结果=$(“#搜索模板”).tmpl(数据);
$(“#搜索结果”).empty()
.附加(结果);
}
);
返回false;
});
})
我将包括以下脚本:

<script src="/Scripts/jquery-1.10.2.js"></script>
<script src="/Scripts/respond.js"></script>
<script src="/Scripts/jquery-ui.js"></script>
<script src="/Scripts/jquery.unobtrusive-ajax.js"></script>


还有。。。这可能是同一问题的一部分。。。快速结果不仅不会显示在屏幕下方的下拉列表中,而且当我单击“搜索”时,结果会显示在一个空屏幕中,而不是如预期的那样显示在原始视图中。

在您的示例中,您从Controller返回带有
属性的
对象,而jquery autocomplete不理解它

更改此项:

.Select(r => new { label = r.Name });
为此:

.Select(r => r.Name );

在您的示例中,您从Controller返回带有
属性的
对象
,而jquery autocomplete不理解它

更改此项:

.Select(r => new { label = r.Name });
为此:

.Select(r => r.Name );

在您的示例中,您从Controller返回带有
属性的
对象
,而jquery autocomplete不理解它

更改此项:

.Select(r => new { label = r.Name });
为此:

.Select(r => r.Name );

在您的示例中,您从Controller返回带有
属性的
对象
,而jquery autocomplete不理解它

更改此项:

.Select(r => new { label = r.Name });
为此:

.Select(r => r.Name );

如果您想进一步了解这一点,那么有一个名为Select2的插件可能会很有用

我在这里回答了一个问题,这个问题涉及使用数据库实现(JS和controller):


我的解决方案与您在实现中使用的基本相同。希望有帮助

如果您想更进一步,那么有一个名为Select2的插件可能会很有用

我在这里回答了一个问题,这个问题涉及使用数据库实现(JS和controller):


我的解决方案与您在实现中使用的基本相同。希望有帮助

如果您想更进一步,那么有一个名为Select2的插件可能会很有用

我在这里回答了一个问题,这个问题涉及使用数据库实现(JS和controller):


我的解决方案与您在实现中使用的基本相同。希望有帮助

如果您想更进一步,那么有一个名为Select2的插件可能会很有用

我在这里回答了一个问题,这个问题涉及使用数据库实现(JS和controller):


我的解决方案与您在实现中使用的基本相同。希望有帮助

问题原来是jquery文件之间的不匹配。我下载了jquery、jquery ui和jquery.unobtrusive的最新版本,然后它就工作了。

问题是jquery文件之间的不匹配。我下载了jquery、jquery ui和jquery.unobtrusive的最新版本,然后它就工作了。

问题是jquery文件之间的不匹配。我下载了jquery、jquery ui和jquery.unobtrusive的最新版本,然后它就工作了。

问题是jquery文件之间的不匹配。我下载了jquery、jquery ui和jquery.unobtrusive的最新版本,然后就成功了。

谢谢你的提示!我真的很感激。我做了改变,但仍然不起作用。我应该在我的OP中说(我会编辑它),不仅快速结果不会显示在搜索框下的下拉列表中,而且。。。当我点击“搜索”时,结果显示在一个空屏幕上,而不是像预期的那样显示在视图中。@CaseyCrookston我不明白,你对自动完成或你的搜索有问题吗?是的,似乎是自动完成不起作用。我想这可能是因为jquery脚本文件不匹配。谢谢你的提示!我真的很感激。我做了改变,但仍然不起作用。我应该在我的OP中说(我会编辑它),不仅快速结果不会显示在搜索框下的下拉列表中,而且。。。当我点击“搜索”时,结果显示在一个空屏幕上,而不是像预期的那样显示在视图中。@CaseyCrookston我不明白,你对自动完成或你的搜索有问题吗?是的,似乎是自动完成不起作用。我想这可能是因为jquery脚本文件不匹配。谢谢你的提示!我真的很感激。我做了改变,但仍然不起作用。我应该在我的OP中说(我会编辑它),不仅快速结果不会显示在搜索框下的下拉列表中,而且。。。当我点击“搜索”时,结果显示在一个空屏幕上,而不是像预期的那样显示在视图中。@CaseyCrookston我不明白,你对自动完成或你的搜索有问题吗?是的,似乎是自动完成不起作用。我想这可能是因为jquery脚本文件不匹配。谢谢你的提示!我真的很感激