Мне нужно реализовать 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);
}
Я вижу, что поисковый термин передается и данные фильтруются, но когдаон возвращается обратно к представлению, которое я вижу
Я попытался точно скопировать пример проекта, но затем столкнулся с другими проблемами:
При использовании @Html.TextBoxFor
вместо <select>
я просто вижу
Нет select2 / compat / inputData
в консоли js
При точном копировании js (с помощью функции data
и results
) мой поисковый запрос никогда не попадает в контроллер, и null
передается каждый раз..
Пожалуйста, кто-нибудь может помочь с этим, я не понимаю