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

当将错误或空值传递给数字参数时,它会被解析为 0。例如,如果您调用类似这样的东西 -> /api/getValue?id=abc

id 是一个整数,id 将有一个 0 值而不是抛出异常。

如果调用具有空值,也会发生同样的情况 -> /api/getValue?id=

 

有什么方法可以使这个错误抛出异常而不是将错误的值传递给方法?

顺便说一句,使用可为空的 int 使您无法使用无参数重载,因此它不是解决方案。


哔哔one
浏览 155回答 2
2回答

慕神8447489

试试这个:[HttpGet("{id}")]public IActionResult Get(int id){     if(!ModelState.IsValid)     {         return BadRequest();     }     return Ok();}在ModelState.IsValid如果一个非数字值作为参数传递将是错误的。如果你愿意,你可以在 if 语句中抛出一个异常。

MMTTMM

使用以下方法:int my_query;if (!string.IsNullOrEmpty(Request.QueryString["id"]) && int.TryParse(Request.QueryString["id"], out my_query)){// do something!}希望能帮助到你。
打开App,查看更多内容
随时随地看视频慕课网APP