Автозаполнение в C # с использованием typeahead не работает - PullRequest
0 голосов
/ 03 июля 2018

Моя функция 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. http://jqueryui.com/autocomplete/

Буду признателен, если кто-нибудь скажет мне, что я делаю неправильно. Спасибо.

1 Ответ

0 голосов
/ 24 июля 2018

Попробуйте это:

<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;


        }
...