gpt4 book ai didi

api - ASP.NET Web API 2 主体类型( bool 值)错误

转载 作者:行者123 更新时间:2023-12-02 14:29:33 26 4
gpt4 key购买 nike

我有一个行动

[HttpPatch]
public IHttpActionResult foo(int id, [FromBody]bool boolVariable)
{
return Ok();
}

我仍在调试,当我尝试使用 Postman 发送一些数据时,我收到一个奇怪的错误

"Message": "The request is invalid.", "MessageDetail": "The parameters dictionary contains a null entry for parameter 'boolVariable' of non-nullable type 'System.Boolean' for method 'System.Web.Http.IHttpActionResult foo(Int32, Boolean)' in 'ProjectName.Controllers.NameController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter."

问题是它没有将 boolVariable 与我的 json 主体绑定(bind)...是的,我可以使用绑定(bind)模型轻松解决问题

  public class FooBindModel
{
public bool boolVariable{ get; set; }
}


public IHttpActionResult foo(int id, FooBindModel bindModel)
{
return Ok();
}

但是它让我烦恼为什么它不绑定(bind) json 主体中的变量?我在操作参数中指定 [FromBody]...

最佳答案

这实际上是您确实需要使用经常被误用的 [FromBody] 属性的情况。默认情况下,Web Api 会尝试将请求正文作为对象读取,这使得在处理对象时 [FromBody] 属性变得多余。

但是,当您的请求正文中有值类型时,您需要告诉 Web Api 您希望从正文中获取值类型,这就是 [FromBody] 所做的。

因此,要解决此问题,您应该指定 [FromBody] bool boolVariable 并仅在正文中发送 bool 值,即

true

Using [FromBody]下阅读更多内容部分

关于api - ASP.NET Web API 2 主体类型( bool 值)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45803421/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com