如何绑定Web API中的多个类


$.ajax({
    type: "POST",
    data: "{myEvents: " + JSON.stringify(myEvents) + ", myRecurrences: " + JSON.stringify(myRecurrences) + "}",
    url: "/signupadmin/api/SignupAdminAPI/SaveEvent",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (obj)
     {
          alert("success");
     },
     error: function (obj)
     {
          alert(obj.error());
     }

    });

  [HttpPost]
    public bool SaveEvent(EvancedEventData myEvents,RecurrenceData myRecurrences)
    {
        return true;
    }

我使用了提到的两个类文件(evancedeventdata和recurreccedata),并试图将JSON对象绑定到Ajax的两个类,但它引发了错误"不能绑定多个参数",您可以提出一个原因,您可以提出一个原因,为什么它不会被束缚。

最好支持这样的问题,其中包括您发布的json字符串和异常报告。

但是,尝试创建包装类别以封装MyEvents和MyRecurrences,类似于:

public class MyWrapperClass
{
  EvancedEventData myEvents {get;set;}
  RecurrenceData myRecurrences {get;set;}
}

然后更改您的邮局以期望包装器类:

[HttpPost]
public bool SaveEvent(MyWrapperClass data)
{
    return true;
}

然后,您应该能够以这样的方式读取数据:

[HttpPost]
public bool SaveEvent(MyWrapperClass data)
{
    var events = data.myEvents
    //do stuff with the events
    var recurrences = data.myRecurrences
    //do stuff with the recurrences
    return true;
}

(以上只是一个示例 - 您无需创建和使用单独的变量来访问数据)。

希望这会有所帮助。

ben

最新更新