F# WebAPI プロジェクトがあり、Post メソッドのパラメーターが何らかの理由で常に null に設定されています。
(お名前は全て匿名です)
コントローラーは次のとおりです。
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>
}
そして、私の見解では、次のように API への POST 呼び出しを行います。
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 例外をスローし、Requests が null であると言います (ブレークポイントは私のレコード定義にあります)。
問題は、コントローラーの Post メソッドにヒットすることですが、values
常に null に設定されます。