Mvc 自动完成 ajax

Mvc autocomplete ajax

尝试:

$(document).ready(function () {
        $('#cityName').autocomplete({
            source: function(request,response) {
                $.ajax({
                    type: 'POST',
                    url: '@Url.Action("Search", "City")',
                    dataType: 'json',
                    data: { name: request.term } ,
                    success: function (data) {
                        response($.map(data, function (item) {
                            alert(JSON.stringify(data));
                            alert(JSON.stringify(item.name));
                            return {
                                name: item.name, 
                                label: item.name
                            }
                        }));
                    }
                })
            },
            messages: {
                noResults: "", results: ""
            }
        })
    })

alert(JSON.stringify(data)) 中得到了这个:{"items":["Boston","Berlin"]}。 在 alert(JSON.stringify(item.name)) 中得到了这个:未定义。

问题:它 (item.name) 是如何工作的?

您只需 return 个字符串数组:

$(document).ready(function () {
        $('#cityName').autocomplete({
            source: function(request,response) {
                $.ajax({
                    type: 'POST',
                    url: '@Url.Action("Search", "City")',
                    dataType: 'json',
                    data: { name: request.term } ,
                    success: function (data) {
                        response(data.items);
                    }
                })
            },
            messages: {
                noResults: "", results: ""
            }
        })
    })