Не удалось загрузить результаты при поиске пользователей - PullRequest
0 голосов
/ 31 мая 2018

Мне нужно реализовать select2 с ajax, и я использую this в качестве примера проекта для работы.

Это то, что у меня есть до сих пор

Просмотр

<div class="form-group">
    <div class="col-md-10">
        <select class="js-data-example-ajax form-control"></select>
    </div>
</div>

$(document).ready(function () {

    $('.js-data-example-ajax').select2({
        placeholder: 'Enter name',
        //Does the user have to enter any data before sending the ajax request
        minimumInputLength: 3,
        allowClear: true,
        ajax: {
            quietMillis: 150,
            // url: '@Url.Action("GetUsers", "CRMTItems")',
            url: '/CRMTItems/GetUsers/' + $('.js-data-example-ajax').text(),
            dataType: 'jsonp',
            results: function (data) {
                console.log('results');
                return { results: data.results }
            }
            // Additional AJAX parameters go here; see the end of this chapter for the full code of this example
        }
    });
)};

Контроллер

public JsonResult GetUsers(string term)
{
    var users = CRMTItemViewModel.AllUsers.Where(u => u.DisplayName.Contains(term));
    var userList = AttendeesToSelect2Format(users, 10);
    return Json(userList, JsonRequestBehavior.AllowGet);
}

Я вижу, что поисковый термин передается и данные фильтруются, но когдаон возвращается обратно к представлению, которое я вижу

enter image description here

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

  1. При использовании @Html.TextBoxFor вместо <select> я просто вижу

    Нет select2 / compat / inputData

    в консоли js

  2. При точном копировании js (с помощью функции data и results) мой поисковый запрос никогда не попадает в контроллер, и null передается каждый раз..

Пожалуйста, кто-нибудь может помочь с этим, я не понимаю

1 Ответ

0 голосов
/ 01 июня 2018

Итак, как Андреас предложил в комментариях, это было потому, что

Results !== results

Но вместо того, чтобы изменить js, мне нужно было изменить свойство Results в Select2PagedResult на results.

Я не уверен насчет jsonp, но изменение его на json, похоже, не имеет никакого значения, даже если в коде класс называется JsonpResult.

...