Вот некоторый код относительно того, как я достиг этого. Я использую плагин jquery UI
JavaScript в моем представлении
$ (function () {
$("#suburb").autocomplete({
source: function (request, response) {
$.ajax({
url: '@Url.Action("ManufacturerAutoComplete", "AutoComplete")', type: "POST", dataType: "json",
data: { searchText: request.term, maxResults: 10 },
success: function (data) {
response($.map(data, function (item) {
return { label: item.DisplayValue, value: item.Suburb, id: item.SuburbID, postcode: item.Postcode, state: item.State }
}))
}
})
},
select: function (event, ui) {
$("#state").val(ui.item.state);
$("#postcode").val(ui.item.postcode);
}
});
вход на мой взгляд
<input type="text" id="suburb" />
И, наконец, код из моего контроллера
[HttpPost]
public JsonResult ManufacturerAutoComplete(string searchText)
{
if (searchText.Length > 2)
{
var service = new SuburbSearchServiceClient();
var results = service.SearchSuburb(searchText, "Australia");
List<Suburbs> sList = new List<Suburbs>();
foreach (var item in results)
{
sList.Add(new Suburbs() { SuburbID = item.SuburbID, Suburb = item.Suburb, State = item.State, Postcode = item.Postcode, DisplayValue = item.Suburb + " - " + item.State + " - " + item.Postcode });
}
return Json(sList);
}
else
{
var data = string.Empty;
return Json(data);
}
}
Вам необходимо включить js и css из плагина jquery-ui, и результаты вашего автозаполнения будут показаны под элементом ввода. Как видно из метода JsonResult, я вызываю веб-сервис для получения данных о моем пригороде, но это может произойти из любой точки реальности.
Надеюсь это поможет.