ВключитеAutoCompleteExtender не вызывая ServiceMethod
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
Мой код ASPX
<asp:TextBox ID="txtSearchKey" runat="server" Width="200" AutoPostBack="true" OnTextChanged="txtSearchKey_TextChanged" />
<asp:TextBoxWatermarkExtender ID="weSearchKey" runat="server" Enabled="True" TargetControlID="txtSearchKey" WatermarkText="Enter search criteria" WatermarkCssClass="watermark" />
<asp:AutoCompleteExtender ServiceMethod="SearchOnboardingMembers" MinimumPrefixLength="3" CompletionInterval="100" EnableCaching="false" CompletionSetCount="10" TargetControlID="txtSearchKey" ID="onboardingSearchExtender" runat="server" FirstRowSelected="false" OnClientItemSelected="GetSelectedId" CompletionListCssClass="completionList" CompletionListItemCssClass="listItem" CompletionListHighlightedItemCssClass="itemHighlighted" CompletionListElementID="divCompletionListElement" />
Мой бэкенд код
[ScriptMethod()]
[WebMethod]
public static List<string> SearchOnboardingMembers(string prefixText, int count)
{
var filteredSearchText = String.Join(",", prefixText.Split(' ').Where(x => x.Length > 2));
//my code
return items;
}
Этот код работает отлично на странице, и я нуждался в ту же функцию на другой странице. Я просто скопировал код HTML и Backend в новый ASPX-файл. Но, как ни странно, он не работает на этой странице. Когда я имею в виду, что не работает, WebMethod не запускается на этой странице. Есть ли у нас какой-нибудь способ отладить эту проблему? Я не вижу никаких ошибок или предупреждений нигде, когда я ввожу текст в текстовое поле, но не вызывает WebMethod. Спасибо за любые предложения
Вы пытались вызвать свой метод обслуживания непосредственно в браузере? Что-то вроде 'MyPage.aspx/SearchOnboardingMembers'. Или поместите его в отдельный файл .asmx и попробуйте открыть 'MyService.asmx', проверить его методы, вызвать его в браузере, а затем проверить вкладку отладки в браузере браузера, чтобы убедиться, что вы вызываете его правильным путем. –