Не работает автозаполнение ASP.NET Core JQuery - отображается пустой список - PullRequest
0 голосов
/ 08 февраля 2019

Я сейчас изучаю ASP и работаю над приложением.У меня есть форма регистрации, где я хочу дать пользователю возможность выбрать страну.

Вот метод в контроллере:

[HttpPost]
public JsonResult AutoComplete(string prefix)
{
    var countries = GlobalConstants.Countries.
        Where(c => c.CountryName.ToLower().StartsWith(prefix.ToLower())).
        Select(c => new { c.CountryName }).
        ToList();

    return Json(countries);
}

Когда я искал информацию, во всех примерах они возвращали return Json(countries, JsonRequestBehavior.AllowGet);

Однако когда яискал это - похоже, что он устарел.

А вот код для представления:

@model Adeptus.WebApp.Models.Country
@{
    ViewBag.Title = "Home Page";
}
<link rel="stylesheet" href="https://code.jquery.com/ui/1.11.2/themes/smoothness/jquery-ui.css">
<script type="text/javascript">
$(document).ready(function () {
    $("#CountryName").autocomplete({
        source: function (request, response) {
            $.ajax({
                url: "/Vendor/AutoComplete",
                type: "POST",
                dataType: "json",
                data: {
                    Prefix: request.term
                },
                success: function (data) {
                    response($.map(data, function (item) {
                        return {
                            label: item.CountryName,
                            value: item.CountryName
                        };
                    }))
                },
                error: function () {
                    alert('something went wrong !');
                }
            })
        },
        messages: {
            noResults: "",
            results: function (resultsCount) { }
        }
    });
})
</script>
<div class = "form-group" > 
    <div class = "col-md-12" > 
        <label for = "Country" > Select Game: - </label>
        @Html.EditorFor(model => model.CountryName, new { htmlAttributes = new { @class = "form-control" } }) 
    </div> 
</div> 

Когда я нажимаю клавишу, я получаю это:

Снимок экрана автозаполнения

Если посмотреть на количество строк в раскрывающемся списке, их 5, однако в моем предварительно загруженном списке стран, начинающихся с "a", - 4.

Я предполагаю, что это что-то связанное с кодом JQuery, но не совсем уверен в этом, так как я еще не совсем знаком с Jquery.

Не могли бы вы взглянуть на это и посоветовать, как я могу сделать эту работу?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...