我目前正在学习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>
当我按下一个键时,我得到了:
在下拉列表中查看的行数为5,但是我的预加载列表中以“ a”开头的国家为4。
我假设它与JQuery代码有关,但由于我对Jquery尚不十分了解,因此无法完全确定。
请问您对此有何建议,并建议我该如何做?