Asp. net core MVC jquery Автозаполнение, возвращение пустых строк данных - PullRequest
0 голосов
/ 05 марта 2020

Это мой первый вопрос здесь или на любом сайте. Я боролся с этой проблемой некоторое время. Я начал использовать ядро ​​Asp. net и собираю проект Asp. net core MVC. У меня проблема с jquery автозаполнением виджета, возвращающего пустые данные из запроса

, вот мой код:

html view:

@section Scripts{

    <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

    <script src="~/lib/Scripts/jquery-3.4.1.js"></script>
    <script src="~/lib/Scripts/jquery-ui.min.js"></script>
<script>

$("#searchInput").autocomplete({
source: function (request, response) {
$.ajax({
url: '@Url.Action("GetSearchValue", "Requests")',
dataType: "json",
data: { search: $("#searchInput").val() },
success: function (data) {
response($.map(data, function (item) {
return { label: item.NameString};
}));
},
error: function (xhr, status, error) {
alert("Error");
}
});
}
});

</script>

}

Контроллер

    [HttpGet]
    public async Task<IActionResult> GetSearchValue(string search)
    {
        var allsearch = _context.Requests.Where(x => x.NameString.ToLower().Contains(search)).Select(x => new Requests
        {
            NameString = x.NameString,
        }).ToList();
        return Ok(allsearch);
    }

Похоже, что jquery возвращает правильное количество предложений, однако они пустые. Таким образом, должно быть, что NameString в jquery не передается правильно, как я не могу на всю жизнь понять, как это сделать

1 Ответ

0 голосов
/ 05 марта 2020

Пожалуйста, используйте код ниже

response($.map(data, function (item) {
        return item.nameString;
      }));

вместо

response($.map(data, function (item) {
return { label: item.NameString};
}));

Это будет работать.

...