Автозаполнение Ajax / Jquery с данными JSON

Я пытаюсь настроить поле автозаполнения JQery UI для получения данных из ajax-соединения. Вот мой код до сих пор:

            $("#mainIngredientAutoComplete").autocomplete({
                source: function (request, response) {
                    $.ajax({
                        url: "../api/IngredientChoices",
                        dataType: "json",
                        success: function (data) {
                            response(function (item) {
                                return {
                                    label: item.MainName,
                                    value: item.MainItemID
                                }
                            });
                        }
                    });
                }
            });

Это мой JSON:

[{"SubItemID":1,"MainItemID":1,"SubName":"2%","MainName":"Milk"},{"SubItemID":2,"MainItemID":1,"SubName":"Skim/Fat Free","MainName":"Milk"},{"SubItemID":3,"MainItemID":2,"SubName":"Chedder","MainName":"Cheese"}]

HTML:


                
                    Ingredient
                    Measurement
                    Amount
                    
                    
                

Когда я начну печататьмил» (для молока) мой код дает мне эту ошибку:

РЕДАКТИРОВАТЬ:

Я сделал ваше изменение, которое сработало за несколько попыток, но теперь я получаю новую ошибку -

Необработанное исключение в строке 55, столбец 25 в [URL]

0x800a1391 - Ошибка времени выполнения Microsoft JScript: 'данные' не определено

        $("#mainIngredientAutoComplete").autocomplete({
            source: function (request, response) {
                $.ajax({
                    url: "../api/IngredientChoices",
                    dataType: "json",
                    response: ($.map(data, function(v,i){
                        return {
                            label: v.MainName,
                            value: v.MainItemID

                        }}))
                });
            }
        });

Ответы на вопрос(1)

Ваш ответ на вопрос