Я сейчас изучаю 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.
Не могли бы вы взглянуть на это и посоветовать, как я могу сделать эту работу?