当将错误或空值传递给数字参数时,它会被解析为 0。例如,如果您调用类似这样的东西 -> /api/getValue?id=abcid 是一个整数,id 将有一个 0 值而不是抛出异常。如果调用具有空值,也会发生同样的情况 -> /api/getValue?id= 有什么方法可以使这个错误抛出异常而不是将错误的值传递给方法?顺便说一句,使用可为空的 int 使您无法使用无参数重载,因此它不是解决方案。
2 回答
慕神8447489
TA贡献1780条经验 获得超1个赞
试试这个:
[HttpGet("{id}")]
public IActionResult Get(int id)
{
if(!ModelState.IsValid)
{
return BadRequest();
}
return Ok();
}
在ModelState.IsValid如果一个非数字值作为参数传递将是错误的。如果你愿意,你可以在 if 语句中抛出一个异常。
MMTTMM
TA贡献1869条经验 获得超4个赞
使用以下方法:
int my_query;
if (!string.IsNullOrEmpty(Request.QueryString["id"]) && int.TryParse(Request.QueryString["id"], out my_query))
{
// do something!
}
希望能帮助到你。
- 2 回答
- 0 关注
- 151 浏览
添加回答
举报
0/150
提交
取消