使用预输入在C#中自动完成无法正常工作

时间:2018-07-03 07:12:10

标签: javascript c# model-view-controller autocomplete jquery-ui-autocomplete

我的JS函数

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

ID #pName是文本框的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/

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

1 个答案:

答案 0 :(得分:0)

尝试一下:

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


        }