我有以下 JQuery:
var dataToSend = {
list: [{ Code: 'ABC', BusinessDate: '31-Jan-2012' }, { Code: 'DEF', BusinessDate: '31-Jan-2012' }]
};
$.ajax({
type: 'POST',
traditional: true,
url: '/api/dashboard/post/',
dataType: 'json',
data: JSON.stringify( dataToSend),
success: function (result) {
alert('done');
},
error: function (result) {
alert(result);
}
});
以及服务器上的以下方法:
[System.Web.Http.HttpPost]
public void Post(List<MyObject> list)
{
}
MyObjects 定义:
public class MyObject
{
/// <summary>
///
/// </summary>
public string Code { get; set; }
/// <summary>
///
/// </summary>
public string BusinessDate { get; set; }
}
该方法被命中,但在集合中没有显示任何结果。如果我将参数更改为:
[System.Web.Http.HttpPost]
public void Post(MyObject list)
{
// return new JsonResult();
}
并且只通过集合中的第一项,我在 web api 方法中接收到带有数据的对象没有问题,只有在尝试传递数组时我似乎有问题。
Fiddler 将其显示为 JSON:
{"list":[{"Code":"ABC","BusinessDate":"31-Jan-2012"},{"Code":"DEF","BusinessDate":"31-Jan-2012"}] }
有人可以解释一下我做错了什么,所以我无法接收数组吗?