Автозаполнение в C# с помощью typeahead не работает
Моя функция JS
<script type="text/javascript">
$(function () {
$("#pName").autocomplete({
source: '@Url.Action("GetExistingProducts")'
});
});
</script>
ID #pName
- это идентификатор текстового поля, которое находится в модальном .
Моя GetExistingProducts
функция в контроллере
public IEnumerable<string> GetExistingProducts()
{
return _traceProjectService.GetAllProducts();
}
Это делает вызов GetAllProducts()
в моей службе
public IEnumerable<string> GetAllProducts()
{
var productList = myContext.Projects.Select(x =>x.ProductName).ToList();
return productList;
}
Выпуск:
Моя функция JS не показывает существующие продукты, когда я начинаю печатать в своем текстовом поле.
Ссылки:
Был бы признателен, если бы кто-нибудь рассказал мне что я делаю неправильно. Спасибо.
1 ответ:
Попробуйте это:
<script src="~/Scripts/bootstrap3-typeahead.js"></script> <script> $.ajax({ url: '@Url.Action("GetExistingProducts", "Admin")', type: "GET" }).done(function(dt) { var res = dt.split(","); $(".pText").typeahead({ source: res, showHintOnFocus: "all", fitToElement: true }); }); $.ajax({ url: '@Url.Action("GetExistingVersions", "Admin")', type: "GET" }).done(function(dt) { var res = dt.split(","); $(".vText").typeahead({ source: res, showHintOnFocus: "all", fitToElement: true }); }); </script>
На стороне контроллера
public string GetExistingProducts() { var x = yourservice.function().toList(); string a = string.Empty; foreach (var item in x) { a += item + ","; } return a; }