Так же, как метод GetCompletionList
был неправильно объявлен как static
, он должен иметь два атрибута; [System.Web.Services.WebMethod]
и [System.Web.Script.Services.ScriptMethod]
Итак, ваша декларация должна выглядеть так:
[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public string[] GetCompletionList(string prefixText, int count) { ...
Также ваш класс обслуживания должен иметь следующие атрибуты:
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[System.Web.Script.Services.ScriptService]
Расширитель автозаполнения также будет поврежден, если ваш метод GetCompletionList
выдает исключение. Чтобы защититься от этого, вы должны добавить try..catch
блок вокруг кода функции
[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public string[] GetCompletionList(string prefixText, int count)
{
List<string> returnData = new List<string>();
try
{
// database access code that sets returnData
}
catch (Exception ex)
{
// log the exception
}
return returnData.ToArray();
}