2016-11-12 105 views
0

當我張貼到我的asmx web服務,返回此錯誤:阿賈克斯後返回錯誤

未能創建類型「myProjectName.AutoCompleteWebService」。

我嘗試了StackOverflow和許多其他網站的所有答案,但沒有一個在我的情況下工作。

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; 
    } 

} 

回答

3

我冒昧地猜測,這是一個問題您的.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

非常感謝... :) –