如何在web api中绑定多个类

时间:2014-03-10 01:57:12

标签: asp.net-mvc asp.net-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和recurrencedata),并尝试将json对象绑定到ajax中的两个类但是它会抛出错误“无法绑定多个参数”你可以提出一个原因,为什么它没有绑定

1 个答案:

答案 0 :(得分:0)

最好通过数据示例支持此类问题,例如您发布的JSON字符串和异常报告。

但是,尝试创建一个包装类来封装myEvents和myRecurrences,例如:

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

然后更改您的POST操作以期望包装类:

[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;
}

(上面只是一个例子 - 你不需要创建和使用单独的变量来访问数据)。

希望这有帮助。