阿贾克斯后返回错误

阿贾克斯后返回错误

问题描述:

当我张贴到我的asmx web服务,返回此错误:阿贾克斯后返回错误

未能创建类型“myProjectName.AutoCompleteWebService”。

我尝试了*和许多其他网站的所有答案,但没有一个在我的情况下工作。

JQuery的

$("#txtSearchKeyWord").autocomplete({ 
    source: function (request, response) { 
     $.ajax({ 
      url: "AutoCompleteWebService.asmx/IndentifySearch", 
      data: "{ 'keyWord': '" + request.term + "','Lang': 'En' }", 
      dataType: "json", 
      type: "POST", 
      contentType: "application/json; charset=utf-8", 
      dataFilter: function (data) { return data; }, 
      success: function (data) { 
       $(currentElement).css({ "background": "rgb(255, 255, 255) none repeat scroll 0% 0%/auto padding-box border-box" }); 
       response($.map(data.d, function (item) { 
        return { 
         value: item 
        } 
       })) 
      }, 
      error: function (XMLHttpRequest, textStatus, errorThrown) { 
       alert(textStatus); 
      } 
     }); 
    }, 
    open: function (event, ui) { 
     //$(".ui-autocomplete").css("left", (parseInt($(".ui-autocomplete").css("left").replace("px", "")) - 114).toString() + "px"); 
    }, 
    minLength: 3, 
    appendTo: "#Autocontainer" 
}); 

ASMX

<%@ WebService Language="C#" CodeBehind="AutoCompleteWebService.asmx.cs" Class="RoyalTours.AutoCompleteWebService" %> 

C#

[WebService(Namespace = "http://tempuri.org/")] 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
[ScriptService] 

public class autocomp : System.Web.Services.WebService 
{ 
    [WebMethod] 
    public List<string> IndentifySearch(string keyWord) 
    { 
     string currentPageURL = HttpContext.Current.Request.Url.AbsolutePath; 
     List<Package> olstPackage = null; 
     olstPackage = new PackageRepository().SearchPackage(keyWord); 
     List<string> olstResult = null; 
     if (olstPackage.Count > 0) 
     { 
      olstResult = new List<string>(); 
      for (int indexCountry = 0; indexCountry < olstPackage.Count; indexCountry++) 
      { 
       olstResult.Add(olstPackage[indexCountry].KeyWord); 

       if (olstPackage.Count <= 0) 
       { 
        olstResult.RemoveAt(indexCountry); 
       } 
      } 
     } 
     return olstResult; 
    } 

} 

我冒昧地猜测,这是一个问题您的.asmx.asmx.cs文件之间的类不匹配。

在您.asmx页面的顶部,请确保您的Class属性class匹配你.asmx.cs页面的顶部,就像这样:

代码隐藏

public class myService: System.Web.Services.WebService 

前end

<%@ WebService Language="C#" CodeBehind="myService.asmx.cs" Class="MyProject.MyService" %> 

如果使用Visual Studio创建新的Web服务(默认名称类似Service1.asmx),然后将其重命名为MyService.asmx,这是相当普遍的习惯。但重要的是要注意,这不是而是与文件名一起更新类引用,因此在忘记事件时可能会导致头痛。


编辑:说干就干,编辑你的问题,清理了代码,才知道你实际上已经包含了页面的标记和代码隐藏。

正如我怀疑,你的班级不匹配。请看:

的.asmx

Class="RoyalTours.AutoCompleteWebService" 

.asmx.cs

public class autocomp 
+0

是你是对的,我觉得我很累,所以所以我也没注意我的类名感谢您的帮助,这是一个真正的答案.... –

+0

高兴得到了帮助! – Santi

+0

非常感谢... :) –