带有 ASP.NET 问题的 Jquery 自动完成

Posted

技术标签:

【中文标题】带有 ASP.NET 问题的 Jquery 自动完成【英文标题】:Jquery Autocomplete with ASP.NET Issue 【发布时间】:2017-11-11 12:57:43 【问题描述】:

我正在使用带有 asp.net 的 JqueryUI 自动完成小部件 我创建了一个类文件,其中包含将返回搜索结果列表的方法。 在 aspx 页面上,我调用了所有必需的 jquery 文件。 在脚本部分我写下面的代码:

<script type="text/javascript">
    $(document).ready(function () 
        $("#txtSearch").autocomplete(
            source: function (request, response) 
                $.ajax(
                    type: "POST",
                    contentType: "application/json; charset=utf-8",
                    url: "CommonOperation.cs/GetClientName",
                    data: "'SearchVal':'" + document.getElementById('<%=txtSearch.ClientID%>').value + "'",
                    dataType: "json",
                    success: function (data) 
                        response(data.d);
                    ,
                    error: function (result) 
                        alert("Error......");
                    
                );
            
        );
    );
</script>

不知道他们有什么问题,但是当我运行它时,它总是进入错误部分。

【问题讨论】:

您收到的错误信息是什么? 没有错误,只显示包含文本“错误......”的警报框 网址看起来很奇怪。 想一想,.cs 文件是不是暴露为“URL”的东西?不?相应地修改您的代码结构并调用 Web 方法。 你在服务器端使用GetClientName作为WebMethod吗? 【参考方案1】:

您不能将 Web 方法放在类文件中,因为该方法本身需要可通过 Web 访问。

将其移至标准 ASPX 页面的代码隐藏,并使用 .aspx 链接而不是 .cs


另一种方法是简单地使用.asmx,并将您的课程附加到它。 This answer 提供了一些相关信息:

您可以使用诸如 asmx(ASP.Net Web 服务)之类的东西来公开 Web 方法。该文件基本上只是一个指向类文件的标记占位符。内容只是:

<%@ WebService Language="C#" CodeBehind="~/foo/MyClass.cs" Class="MyClass" %>

那么你的类必须继承自System.Web.Services.WebService,你应该很好。

如果您从 Visual Studio 中添加文件并添加 Web 服务文件,您可以获取它来为您创建所有这些。

【讨论】:

【参考方案2】:

这里的url应该是这样的-> url:"CommonOperation.aspx/GetClientName",

【讨论】:

但这是我为此类常见操作创建的类文件【参考方案3】:

完成了 方法将是静态的并声明为 WebMethod 并从 aspx.cs 调用它

【讨论】:

与其发布自己的答案来确认其他人的工作,不如接受原来的正确答案。

以上是关于带有 ASP.NET 问题的 Jquery 自动完成的主要内容,如果未能解决你的问题,请参考以下文章

JQuery 自动完成文本框 asp.net 限制结果

jquery自动完成asp.net Gridview中的多个文本框

如何使用 ASP.NET 从 MSSQL 中获取 JQuery 自动完成小部件的数据

带有 ASP.NET 回发的 jQuery 模态对话框

带有asp .net核心的防伪令牌jquery ajax

发生带有 Jquery 对话框的邮箱时,asp.net 文本框值为空