首页 > 解决方案 > 如何将空字符串发送到 int params 错误

问题描述

我有一个带有 int 参数的端点

[HttpGet]
public IActionResult Test(int a=-1)
{
    return Ok();
}

当我尝试向该资源发送一个空字符串时,我得到一个 400。我怎样才能获得默认值-1

{
    "errors": {
        "a": [
            "The value '' is invalid."
        ]
    },
    "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
    "title": "One or more validation errors occurred.",
    "status": 400,
    "traceId": "00-bb8f5c4f34041e4a9c9ccbc241e711fa-f378875df6f8c541-00"
}

标签: c#asp.net-core-webapi

解决方案


您可以添加[Route("{a?}")]到您的端点,它会忽略非数字值作为空字符串。


推荐阅读