从Ajax调用C#webmethod

时间:2017-03-16 17:10:44

标签: c# jquery asp.net ajax

我正在尝试从ajax调用服务器端函数,但不断收到此错误

  

无效的Web服务调用,缺少参数值:\ u0027name \ u0027。

这里是js代码

var obj = { name: name, company: company, country: country, email: email, msg: Msg }
var json = JSON.stringify(obj);
$.ajax({
    method: "GET",
    url: "ContactUs.aspx/SendEmail",
    contentType: "application/json; charset=UTF-8",
    data: json,
    dataType:"json",
    success: function (data) {
        var a = 3;
    },
    error:function(a,b){
        var a = 43;
    }
})

这里是c#webmethod

[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public static string SendEmail(string name, string company, string country, string email, string msg)
{
    return string.Empty;
}

js和c#vars之间的名称相同,我的所有变量都有值。

提前致谢

1 个答案:

答案 0 :(得分:1)

$.ajax({
    method: "GET",
    url: "ContactUs.aspx/SendEmail?name=" + name + "&company=" + company + "&country=" + "&email=" +email + "&msg=" + Msg,
    dataType: "application/json",
    success: function (data) {
        var a = 3;
    },
    error:function(a,b){
        var a = 43;
    }
}) ;

由于它是GET类型的请求,您需要在查询字符串中传递webmethod参数所需的值。你不能使用data参数,因为GET类型的请求没有有效负载。