绝对是我的智慧在这里结束。这应该很简单。在创建新用户帐户的页面中,我们有一个包含少量允许用户的数据库。为了简化新用户的电子邮件地址的正确性,我们希望使用自动完成扩展文本框。
现在我知道WebMethods正在运行,因为我在另一个页面中有一个与web方法相关联的级联下拉列表。
由于我刚开始在这个页面上,代码很简单。
页面本身:
<cc1:ToolkitScriptManager ID="ScriptManager2" runat="server"/>
<p></p> Please enter new user's Email:
<asp:TextBox ID="txtUser" runat="server" />
<cc1:AutoCompleteExtender runat="server" ID="autUser" TargetControlID="txtUser"
ServiceMethod="ScanGALUsers" ServicePath="~/AutoScan.asmx"
MinimumPrefixLength="3" CompletionSetCount="150" /> <p></p>
.asmx文件很简单:
<%@ WebService Language="VB" CodeBehind="~/App_Code/VB_Code/AutoScan.vb" Class="AutoScan" %>
WebMethod:
<System.Web.Script.Services.ScriptService()> _
<WebService(Namespace:="http://tempuri.org/")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Public Class AutoScan
Inherits System.Web.Services.WebService
<WebMethod()> _
Public Shared Function ScanGALUsers(ByVal strPrefix As String, ByVal intMaxCount As Integer) As String()
Dim arlResults As New ArrayList
Dim intCount As Integer
Dim dt As DataTable
Dim colParameters As New SortedList
SysDA.LogDebug("ScanGALUsers called with parameters: " & strPrefix & " and count of " & intMaxCount.ToString)
... Deleted for brevity ...
If intCount > 0 Then
Dim arrResults(intCount - 1) As String
arrResults = arlResults.ToArray(GetType(System.String))
Return arrResults
Else
Return Nothing
End If
End Function
End Class
我甚至没有参加LogDebug声明。我已经使用了在其他WebMethod中工作的所有相同的样板代码(继承,'WebService'标签等),并对类名进行了适当的更改,但这确实让我感到难过。
我错过了什么,我甚至没有使用该方法?
答案 0 :(得分:0)
你有没有解决这个问题?您是否尝试从WebService声明中删除Shared
?这之前对我有用(我不知道为什么!)。