使用 typeahead 在 C# 中自动完成不起作用

Autocomplete in C# using typeahead not working

我的 JS 函数

<script type="text/javascript">
        $(function () {
            $("#pName").autocomplete({
                source: '@Url.Action("GetExistingProducts")'
            });
        });
</script>

ID #pNameModal.

中文本框的 ID

控制器中我的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/

如果有人能告诉我我做错了什么,我将不胜感激。谢谢。

试试这个:

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


        }