在aspx文件和asmx文件中声明webmethod时,我有确切的代码。它们是为客户端脚本公开的web方法。我只想在asmx文件中使用webmethod,但无法使其工作。
当我在aspx文件中引用一个方法时,一切正常,但是当我在asmx中引用webmethod时,我收到一个未知的错误方法。我检查了所有解决方案的“未知方法,参数方法名称”,但没有任何帮助。
Webmethod以类似的方式声明:
[WebMethod]
public static string[] InsertRecord(string param) { return something }
唯一的区别是asmx包含[System.Web.Script.Services.ScriptService]
类。
我无法弄清楚问题是什么。
WebMethod是从控件(ascx)中的Jquery脚本位置调用的。
function InsertRecord(notice)
{
$.ajax({
type: "POST",
url: "/Webservices/Records.asmx/InsertRecord",
data: "{ 'notice':'" + notice + '' }",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(response) {
},
error: function(msg) {}
});
}
答案 0 :(得分:1)
你的web.config文件可能需要这个(检查它是否存在):
<webServices>
<protocols>
<add name="HttpSoap"/>
<add name="HttpPost"/>
<add name="HttpGet"/>
<add name="Documentation"/>
</protocols>
</webServices>
你需要在你的web.config文件中使用httppost和httpget,否则你的ajax调用永远不会发生。