对布尔查询字符串参数使用"true"或"1"

Pos*_*Guy 20 asp.net

在为bool设置查询字符串参数时,是否有人使用"true"或"false"?或大多数人使用"1"或"0".我很想知道那里的共识.

Rub*_*ias 31

我更喜欢"1/0",因为它不属于本地化要求.

bool isTrue = Request.QueryString["value"] == "1";
Run Code Online (Sandbox Code Playgroud)

  • 常见的布尔关键字如"true"或"false"也不受i18n的约束. (2认同)
  • 您可能还会发现,当作为参数传递时,不同的语言会将 true/false 更改为 1/0,并且您会绞尽脑汁想弄清楚为什么它不起作用。 (2认同)

B12*_*ter 18

值得一提的是,当使用 ASP.NET Core 并通过[FromQuery] 进行绑定时,您被迫使用布尔值作为参数。

[HttpGet("/api/foo")]
public Task<NoContentResult> FooAction([FromQuery(Name = "bar")] bool isBar) { /*...*/ }
Run Code Online (Sandbox Code Playgroud)

这将起作用:

GET /api/foo?bar=true
Run Code Online (Sandbox Code Playgroud)

传递整数将导致ModelStateASP.NET Core 的 ModelBinder 返回无效

GET /api/foo?bar=1
Run Code Online (Sandbox Code Playgroud)