JQuery Ajax:“无效的Web服务调用,缺少参数值:\ u0027Object \ u0027”错误

时间:2016-08-18 11:17:43

标签: javascript c# ajax web-services

到目前为止,我试图将表单发布到我的网络服务上并没有取得很大成功 在发布到服务器之前,我将表单转换为对象。 将表单Object发布到我的Asmx网络服务时,我收到错误。

我的Ajax:

 var formObject = $(form).serializeObject();
 var formData = JSON.stringify(formObject);
 $.ajax({
          type: "POST",
          url: "./Service.asmx/PostAutomaticRule",
          data: { myObject: formData },
          contentType: "application/json; charset=utf-8",
          dataType: "json",
                success: function (response) {
                    alert("success");
                },
                error: function (response) {
                    alert("Error");
                }
            });

我的asmx:

  [WebMethod(EnableSession = true)]
    public void PostAutomaticRule(MyClass myObject)
    {
        Debug.WriteLine(myObject);
    }


}

[Serializable]
public class MyClass
{
    public string automaticRuleName { get; set; }
    public string action { get; set; }
    public string increaseBudgetByValue { get; set; }
    public string increaseBudgetMaximumBudget { get; set; }
}

更多信息: 调试时,这些值是:

enter image description here

我做错了什么?

3 个答案:

答案 0 :(得分:0)

请在ajax调用中尝试使用以下代码获取数据参数:

m_w = 102 * 5 = 510

答案 1 :(得分:0)

基于sending-json-collection-to-asmx-webservice

我要改为:

data: {Object : JSON.stringify($(form).serializeObject())}

data: {myObject : JSON.stringify($(form).serializeObject())}

但您可能需要创建一个更具体的类。

答案 2 :(得分:0)

最后我得到了这样的话:

$.ajax({
          type: "POST",
          url: "./Service.asmx/PostAutomaticRule",
          data: "{'myObject': "+formData+"}",
          contentType: "application/json; charset=utf-8",
          dataType: "json",
                success: function (response) {
                    alert("success");
                },
                error: function (response) {
                    alert("Error");
                }
            });