为了账号安全,请及时绑定邮箱和手机立即绑定

asp.net 将错误的数值解析为 0

asp.net 将错误的数值解析为 0

C#
哔哔one 2021-07-01 13:01:02
当将错误或空值传递给数字参数时,它会被解析为 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 语句中抛出一个异常。


查看完整回答
反对 回复 2021-07-10
?
MMTTMM

TA贡献1869条经验 获得超4个赞

使用以下方法:


int my_query;

if (!string.IsNullOrEmpty(Request.QueryString["id"]) && int.TryParse(Request.QueryString["id"], out my_query))

{

// do something!

}

希望能帮助到你。


查看完整回答
反对 回复 2021-07-10
  • 2 回答
  • 0 关注
  • 151 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信