アクションがあります
[HttpPatch]
public IHttpActionResult foo(int id, [FromBody]bool boolVariable)
{
return Ok();
}
私はまだデバッグ中で、Postman でデータを送信しようとすると、奇妙なエラーが発生します
"Message": "The request is invalid.", "MessageDetail": "パラメーター ディクショナリには、メソッド 'System.Web.Http.IHttpActionResult foo の null 非許容型 'System.Boolean' のパラメーター 'boolVariable' の null エントリが含まれています(Int32, Boolean)' in 'ProjectName.Controllers.NameController'. オプションのパラメーターは、参照型または null 許容型であるか、オプションのパラメーターとして宣言する必要があります。"
問題は、boolVariable が json 本体にバインドされていないことです...そうです、バインドモデルで問題を簡単に解決できます
public class FooBindModel
{
public bool boolVariable{ get; set; }
}
public IHttpActionResult foo(int id, FooBindModel bindModel)
{
return Ok();
}
しかし、jsonの本体から変数をバインドしないのはなぜですか? アクションパラメータに[FromBody]を指定しているのですが…