【问题标题】:asp.net mvc autocomplete using jquery使用 jquery 的 asp.net mvc 自动完成
【发布时间】:2017-04-21 08:08:28
【问题描述】:

我知道我的问题已在论坛中发布,但我没有找到可行的解决方案。我确定我做错了什么,但我找不到。

这是一个测试代码,它可以工作并从数据表中返回一个列表

<TestMethod()> Public Sub ObtientNomsRestaurants()
    Dim q = From c In dal.ObtientNomsRestaurants() 'As IQueryable of Resto
    For Each resto In q
        Console.WriteLine(resto.Nom)
    Next
End Sub

现在在我的控制器中,我调用 dal 方法并尝试从我的数据表列“Nom”中返回所有以参数“Prefix”开头的元素

<HttpPost>
    Public Function TagSearch(Prefix As String) As JsonResult
        Dim q = From c In dal.ObtientNomsRestaurants().Where(Function(m) m.Nom.StartsWith(Prefix)).Select(Function(m) New With {.Name = m.Nom}).ToList
        Return Json(q, JsonRequestBehavior.AllowGet)
    End Function

在我看来,要完成,我有一个输入文本框,其中“标签”作为 id 还有这个自动完成

<script type="text/javascript">
    $(function () {
        $("#tags").autocomplete({
            source: function (request, response) {
                $.ajax({
                    url: "/Home/TagSearch",
                    type: "POST",
                    dataType: "json",
                    data: { Prefix: request.term },
                    success: function (data) {
                        response($.map(data, function (item) {
                            return { label: item.Name, value: item.Name };
                        }))

                    }
                })
            },
            messages: {
                noResults: "", results: ""
            }
        });
    });
</script>

编辑: 所以现在我编辑我的控制器,这正在工作

<HttpPost>
    Public Function TagSearch(Prefix As String) As JsonResult
        'Dim ObjList = dal.ObtientTousLesRestaurants()

        Dim ObjList As New List(Of Resto)() From {
            New Resto() With {.Id = 4, .Nom = "Latur"},
            New Resto() With {.Id = 5, .Nom = "Mumbai"},
            New Resto() With {.Id = 6, .Nom = "Pune"},
            New Resto() With {.Id = 7, .Nom = "Delhi"},
            New Resto() With {.Id = 8, .Nom = "Dehradun"},
            New Resto() With {.Id = 9, .Nom = "Noida"},
            New Resto() With {.Id = 10, .Nom = "New Delhi"}
        }
        Dim Nom = (From N In ObjList Where N.Nom.StartsWith(Prefix) Select New With {N.Nom})
        Return Json(Nom, JsonRequestBehavior.AllowGet)
    End Function

但是如果我使用 dal 方法来获取数据库数据,它就不起作用。无论哪种方式,ObjList 都是一个恢复列表。

【问题讨论】:

  • 请您告诉我们您正在寻找的没有发生的行为吗?
  • 我是 vb 的新手,我正在寻找的行为是带有自动完成餐厅名称的文本框字段。我有一个餐厅名称为 Nom 的餐厅。我所拥有的是一个没有任何自动完成或错误的文本框
  • 您是否调试过您的代码以查看您的 VB 方法是否返回了数据?
  • 是的,前缀值 = "L"; TagSearch 值是 Nothing 而 q 值也不是
  • 您可以从这里link 下载项目,只需更改连接字符串。谢谢你的帮助

标签: jquery ajax asp.net-mvc vb.net jquery-ui


【解决方案1】:

我解决了连接字符串中的问题 见Solution here

【讨论】:

    猜你喜欢
    • 2011-01-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2011-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多