鉴于模型具有布尔属性:
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 :(得分:0)
答案 1 :(得分:0)
也许这不是一个完美的解决方案,但是一旦您将JSON作为请求正文发送出去,这种解决方法便会满足您的需求:
click
如果'true'和'1'的变化形式,则返回'true',否则将为'false'