Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 未知的web方法。参数名称:web服务中的methodName_C#_Asp.net_Ajax_Web Services - Fatal编程技术网

C# 未知的web方法。参数名称:web服务中的methodName

C# 未知的web方法。参数名称:web服务中的methodName,c#,asp.net,ajax,web-services,C#,Asp.net,Ajax,Web Services,我正在用c#在asp.net中使用web服务。在这方面,我正在从事一项任务,即在web服务中从AJAX调用该方法。但是,每当我在按钮点击事件中从AJAX调用该方法时,它都会显示错误,即500(内部服务器错误),当我在开发人员工具中进入网络时,它会显示我 未知的web方法和方法。参数名称:methodname 下面是ajax函数代码 $("#submit").click(function () { $.ajax({ type: "POST", url:

我正在用c#在asp.net中使用web服务。在这方面,我正在从事一项任务,即在web服务中从AJAX调用该方法。但是,每当我在按钮点击事件中从AJAX调用该方法时,它都会显示错误,即500(内部服务器错误),当我在开发人员工具中进入网络时,它会显示我

未知的web方法和方法。参数名称:methodname

下面是ajax函数代码

$("#submit").click(function () {
     $.ajax({
         type: "POST",
         url: "OakscrollWebService.asmx/SendMail",
         dataType: "json",
         data: JSON.stringify({ name: $('#name').val(), email: $('#mail').val(), subject: $('#subject').val(), message: $('#message').val() }),
         contentType: "application/json; charset=utf-8",
         success: function (data) {
             alert(data.d);
         },
         failure: function (data) {
             alert("something went wrong");
             //console.log(msg);
         }
     });
 });
这是cs代码

[WebMethod, ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = false)]
public static void SendMail(string name, string email, string subject, string message)
{
}

我注意到还有一件事,那就是当我运行该文件时,
asmx
文件中没有显示
sendmail
方法。奇怪的是它为什么没有出现。

.asmx
文件中,如果您想跨多个页面使用它,您的方法不应该是
静态的。因此,只需删除
static
关键字,它就可以正常工作了:

[WebMethod, ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = false)]
public void SendMail(string name, string email, string subject, string message)
{
}

在处理错误之前,简单地发布到这个url发送电子邮件?用户不能在asmx文件中直接访问此文件,而且sendmail方法未显示是的,您完全正确。知道了。谢谢@S.Akbari