2015-07-16 2 views
0

Я использую плагин Select2 jQuery с MVC4. У меня есть файл JavaScript работает с выборкой данных в формате JSON в моем контроллере, но я получаю сообщение об ошибке, когда я отладку и попытаться отобразить результаты:Select2 не показывает результаты, но успешно возвращает JSON

Unable to get property 'toUpperCase' of undefined or null reference 

Я думаю, что это, возможно, придется делать с JSON I 'm возвращается, поскольку он выглядит как объекты или тот факт, что они ints, но я не совсем уверен. Преобразование их в строки через ToString() тоже не сработало. [{ "Имя": 1, "метка": 1}, { "имя": 2, "метка": 2}, ...]

Вот мои JS:

$("#ItemID").select2({ 
    ... 
    ajax: { 
    url: $("#ItemID").attr("data-getids"), 
    dataType: "json", 
    data: function (param) { 
     return {query: param};}, 
    results: function(data) { 
     return {results: data};} 
    } 
}); 
+0

Попробуйте распечатать (param) и (данные), чтобы увидеть, что нужно; и проверьте правильность вашего запроса. – bicho

+0

searchterm получает правильное значение (поисковый запрос). Данные выводят [object Object], [object Object] и т. Д. Что я понятия не имею, это правильно или нет. –

+0

Вы кодируете JSON? результат в вашем URL-адресе? – bicho

ответ

0

Я понял. Я использую более старую версию select2 (3.4.5), и я закончил отображение JSON в функции результатов.

results: function (data) { 
    return { 
     results: $.map(data, function (item) { 
      return {text: item.name, 
      id: item.id}; 
     }; 
    }), 
} 
+1

Не забудьте сохранить свойство 'id', а также! Сейчас он не будет включен, поэтому ваши результаты не будут доступны. –

+0

Спасибо, что напомнил мне - я заметил это вчера, но я забыл исправить свой ответ. –