Ajax后返回错误

本文关键字:错误 返回 Ajax | 更新日期: 2023-09-27 18:17:33

当我发布到我的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;
   }
}

Ajax后返回错误

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

.asmx页面的顶部,确保您的Class属性与.asmx.cs页面顶部的class匹配,如下所示:

后台代码

public class myService: System.Web.Services.WebService
前端

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

如果使用Visual Studio创建一个新的Web服务(默认名称为Service1.asmx之类的东西),然后将其重命名为MyService.asmx,这是相当普遍的习惯。但是需要注意的是,并没有在更新文件名的同时更新类引用,因此如果您忘记了,可能会引起麻烦。


EDIT:继续编辑你的问题以清理代码,却发现你实际上已经包含了页面的标记和代码。

正如我所怀疑的,你的类不匹配。看一下:

asmx

Class="RoyalTours.AutoCompleteWebService"

.asmx.cs

public class autocomp