2
我有一個F#WebAPI項目,並且Post方法的參數始終設置爲null。我對WebAPI的發佈操作的參數始終爲空
(的名字都被匿名)
這裏是控制器:
type TestController() =
inherit ApiController()
member x.Get() =
getValues()
member x.Post ([<FromBody>] values: Values) =
storeValues values
這是怎麼記錄Values
被定義爲:
type TypeA = {
Id: string
....
}
....
type Values = {
AValues: list<TypeA>
BValues: list<TypeB>
CValues: list<TypeC>
}
在我看來,我做一個POST調用API如下:
return $.ajax({
type: "POST",
url: url,
data: JSON.stringify(params),
contentType: "application/json",
beforeSend: function (jqXHR) { jqXHR.setRequestHeader("X-HTTP-Method", type); }
});
其中data
出來到:
{
"AValues":[{"Id":"blahblah", ....}],
"BValues":[...],
"CValues":[...]
}
我更新了JS做data
評價到:
{
"Values":
{
"AValues":[{"Id":"blahblah", ....}],
"BValues":[...],
"CValues":[...]
}
}
現在調試器拋出一個nullreference異常,並說,要求爲空(斷點在我的記錄定義)。
問題是它確實碰到控制器中的Post方法,但values
始終設置爲null。
什麼'JSON.stringify(PARAMS)'產生?我的意思是你發送的JSON數據是什麼? – tugberk 2012-08-03 15:25:24
它已在上面列出。 '{「Id」:「blahblah」,....}], 「BValues」:[...], 「CValues」:[...] } – encee 2012-08-03 19:13:26