带有 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 Gridview中的多个文本框