Jquery Автозаполнение пустого поля - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть эта проблема с автозаполнением, она возвращает что-то вроде этого: Это Но когда вы проверяете, что возвращает метод записи, все так, как должно быть, но в результате мы получаем взамен пустое поле, а не слово "Оборудование".

Мой код: Метод конструктора:

[HttpPost]
        public JsonResult CreateJS(string prefix)
        {
            List<CategoryModel> list = new List<CategoryModel>();
            list = _context.Categories.ToList();
            var CatList = (from N in list
                            where N.Name.StartsWith(prefix)
                            select new { value = N.Name,label = N.Name });
            return Json(CatList);

Вид:

<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script>
    $(document).ready(function () {
        $("#Category").autocomplete({
            source: function (request, response) {
                $.ajax({
                    url: "/Incident/CreateJS",
                    type: "POST",
                    dataType: "json",
                    data: { Prefix: request.term },
                    success: function (data) {
                        response($.map(data, function (item) {
                            return { label: item.Name, value: item.Name };
                        }))

                    }
                })
            },
            messages: {
                noResults: "", results: ""
            }
        });
    })
</script>
<hr />
<div class="row">
    <div class="col-md-4">
        <form asp-action="Create">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
                <label asp-for="IncidentDescription" class="control-label"></label>
                <input asp-for="IncidentDescription" class="form-control" />
                <span asp-validation-for="IncidentDescription" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="Title" class="control-label"></label>
                <input asp-for="Title" class="form-control" />
                <span asp-validation-for="Title" class="text-danger"></span>
            </div>

        <div class="form-group">
            <label for="Category">Cat:</label>
            <input type"text" name="Category" id="Category"/>
        </div>

1 Ответ

0 голосов
/ 27 апреля 2020

Нет необходимости использовать $ .map в функции обратного вызова ajax. Непосредственно применить данные к ответу.

<script>
    $(document).ready(function () {
        $("#Category").autocomplete({
            source: function (request, response) {
                $.ajax({
                    url: "/Incident/CreateJS",
                    type: "POST",
                    dataType: "json",
                    data: { Prefix: request.term },
                    success: function (data) {
                        response(data);
                    }
                })
            },

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