gpt4 book ai didi

asp.net-core - Asp.net Core 模型绑定(bind)器接受 bool 类型的随机整数

转载 作者:行者123 更新时间:2023-12-02 20:18:50 25 4
gpt4 key购买 nike

假设模型有一个 bool 属性:

public class Person
{
public string Name { get; set; }
public bool IsMale { get; set; }
}

当尝试发布以下有效负载时:

{
"name": "Bob",
"isMale": 12345 // any random integer
}

执行一个简单的操作:

[HttpPost]
public IActionResult Post([FromBody] Person person)
{
if (ModelState.IsValid)
return Ok();
return BadRequest(ModelState);
}

person.IsMale 属性获取的值为 true

如果传递 isMale: "foobar" 我会收到无效类型错误

如果传递 isMale: "0" 我会收到无效类型错误

如果传递 isMale: "1" 我会收到无效类型错误

如果传递 isMale: "True" 我得到 true

如果传递 isMale: "False" 我得到 false

如果传递isMale: 0我得到false

如果传递isMale: 1我得到true

如果传递isMale: 34(随机整数),我会得到true

问题:

为什么它认为随机整数默认为 true 以及如何更改该行为以提示传入的类型不合适(int 而不是 bool)?

最佳答案

从您的示例来看,任何非 0 的数值都会被解释为 true,这一点也不奇怪。

引用的版本"0""1"string类型,不能直接解析为bool.

请参阅 bool.Parse(string) 的文档.

关于asp.net-core - Asp.net Core 模型绑定(bind)器接受 bool 类型的随机整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56132879/

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