Краткий ответ: См. Этот пост jQuery UI автозаполнение с ASP.NET Web API
Длинный ответ:
Шаг 1. Подготовка к работе с веб-интерфейсом API
Давайте сначала создадим метод веб-API , который будет возвращать список элементов (исполнителей) с использованием поискового термина запрос отправлен из текстового поля автозаполнения.В этом посте я не использую базу данных, вместо этого я буду использовать List, чтобы максимально упростить этот пример.
Ниже описано, как я определил свой класс Artist
public class Artist
{
public int Id { get; set; }
public int Name { get; set; }
}
ДалееЯ создал GET-метод Web Api , который будет использовать поисковый запрос, введенный в текстовое поле автозаполнения, и с небольшой помощью LINQ вернет список совпадающих результатов.
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
namespace Autocomplete.Controllers
{
public class ArtistApiController : ApiController
{
public List<Artist> ArtistList = new List<Artist>
{
new Artist{Id = 1, Name = "Sonu Nigam"},
new Artist{Id = 2, Name = "Sunidhi Chauhan"},
new Artist{Id = 3, Name = "Shreya Goshal"},
new Artist{Id = 4, Name = "Mohit Chauhan"},
new Artist{Id = 5, Name = "Nihkil Dsouza"},
new Artist{Id = 6, Name = "Kailash Kher"},
new Artist{Id = 7, Name = "Atif Aslam"},
new Artist{Id = 8, Name = "Ali Zafar"},
new Artist{Id = 9, Name = "Shafaqat Ali"},
new Artist{Id = 10, Name = "Shankar Madahevan"}
};
// GET api/values
public IEnumerable<Artist> Get(string query)
{
return ArtistList.Where(m => m.Name.Contains(query)).ToList();
}
}
}
Нашсерверный код готов!Время проверить это.

Шаг 2: Код на стороне клиента
Включите jquery-ui.js и jquery.ui.CSS в вашем html
<script type="text/javascript" src="~/Scripts/jquery-1.7.1.min.js" ></script>
<script type="text/javascript" src="~/Scripts/jquery-ui-1.8.20.min.js" ></script>
<link href="~/Content/themes/base/jquery.ui.all.css" rel="stylesheet" />
<div id="body">
<label for="autocomplete-textbox">Search : </label>
<input type="text" id="autocomplete-textbox" />
</div>
<script type="text/javascript">
$(document).ready(function (){
$('#autocomplete-textbox').autocomplete({
source: function (request, response) {
// prepare url : for example '/api/artistapi?query=sonu
var autocompleteUrl = '/api/artistapi' + '?query=' + request.term;
$.ajax({
url: autocompleteUrl,
type: 'GET',
cache: false,
dataType: 'json',
success: function (json) {
// call autocomplete callback method with results
response($.map(json, function (data, id) {
return {
label: data.Name,
value: data.Id
};
}));
},
error: function (xmlHttpRequest, textStatus, errorThrown) {
console.log('some error occured', textStatus, errorThrown);
}
});
},
minLength: 2,
select: function (event, ui) {
alert('you have selected ' + ui.item.label + ' ID: ' + ui.item.value);
$('#autocomplete-textbox').val(ui.item.label);
return false;
}
});
});
</script>
Здесь следует отметить, что в методе успеха я использовал следующий код:
response($.map(json, function (data, id) {
return {
label: data.Name,
value: data.Id
};
}));
data.Id и data.Name используется, потому что в ответе ajax (как показано ниже) данные возвращаются в этом формате.

Шаг 3: Проверка& Вывод:

Взято из здесь