Jquery 自动完成不显示结果“$map 未定义”

Jquery Autocomplete not showing results "$map is not defined"

我正在尝试设置 jquery 自动完成功能,但是当我输入文本时没有出现建议。

项目是MVC .NET VS2013。

使用 Chrome 中的调试器我可以看到正在生成正确的建议,但没有显示在页面上。在 firefox 中使用 firebug 具有相同的结果。

此外,我收到“$map 未定义”错误。看起来这意味着 jquery-ui 没有被加载,但我很茫然,因为我尝试将它加载到作为 jquery 包的一部分包含的 _layout 中,因为它是自己的包,并且直接在视图上引用,但是 none 有任何影响(jquery-ui 总是在 jquery.js 之后引用)。

在 MVC 项目中是否应该引用 jquery-ui 的特定方式?

Jquery:

  <p>
@Html.TextBox("Restaurant")
<input type="submit" id="Restaurant" value="Submit" />
</p>
 @section scripts {

<section class="scripts">

    <script type="text/javascript">
$(document).ready(function () {
    $("#Restaurant").autocomplete({
        source: function (request, response) {
            $.ajax({
                url: "/Map/Search",
                type: "POST",
                dataType: "json",
                data: { term: request.term },
                success: function (data) {
                    response($map(data, function (item) {

                        return {
                            label: item.value,
                            value: item.label

                            };
                     }
                    ))

                }
            })
        },
        messages: {
            noResults: "", results: ""
        }
    });
})
</script>
</section>
}

更改这部分代码

response($map(data, function (item) {

response($.map(data, function (item) {

或者您可以将成功回调函数重构为:

success: function (data) {
    var items = $.map(data, function (item){
        return {
            label: item.value,
            value: item.label
        };
    });
    response(items);
}