ASP.NET Core JQuery自动完成不起作用-显示空列表

时间:2019-02-08 19:49:40

标签: jquery asp.net-mvc autocomplete

我目前正在学习ASP,并且正在研究App。我有一个注册表,希望向用户提供选择国家的选项。

这是控制器中的方法:

[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);

但是,当我寻找它时-它似乎已被弃用。

这是View的代码:

@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> 

当我按下一个键时,我得到了:

Autocomplete screenshot

在下拉列表中查看的行数为5,但是我的预加载列表中以“ a”开头的国家为4。

我假设它与JQuery代码有关,但由于我对Jquery尚不十分了解,因此无法完全确定。

请问您对此有何建议,并建议我该如何做?

0 个答案:

没有答案