当我发布到我的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;
}
}
答案 0 :(得分:3)
我冒昧地猜测这是您的.asmx
和.asmx.cs
文件之间课程不匹配的问题。
在.asmx
页面的顶部,请确保您的Class
属性与class
页面顶部的.asmx.cs
相匹配,如下所示:
<强>代码隐藏强>
public class myService: System.Web.Services.WebService
前端
<%@ 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