私は次の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 メソッドのデータを含むオブジェクトを問題なく受け取ります。問題があると思われるのは、配列を渡そうとしたときだけです。
Fidler はこれを JSON として示します。
{"リスト":[{"コード":"ABC","営業日":"2012 年 1 月 31 日"},{"コード":"DEF","営業日":"2012 年 1 月 31 日"}] }
私が間違って何をしているのか、配列を受け取ることができないことを誰かが説明してもらえますか?