繁体   English   中英

ASP.NET Core Web API:Z37A6259CC0C1DAE299ZA7866489DFFBD0如何处理?

[英]ASP.NET Core Web API : how to handle null or empty parameters?

Web API 项目是在 ASP.NET Core 2.2 中创建的。

我有一个接受自定义 class 作为参数的POST方法:

public async Task<IActionResult> MyWebMethod(Id id,
        [FromBody] IReadOnlyCollection<MyCustomClass> instances)
{
    // Process the data
    return CreatedAtRoute("GetMyCollection",
                new
                {
                    id,
                    myIds = "someString";
                },
                responsesObject);
}

代码在收到适当的实例时工作正常。

如果该方法从客户端请求中接收到任何 null 参数或空的 object,那么我需要向客户端发送回 422 响应(422 无法处理的实体)。

我在方法中放置了一些代码来处理这种情况:

    if (instances == null || instances.Count == 0)
    {
        return StatusCode(Convert.ToInt32(HttpStatusCode.UnprocessableEntity), instances);
    }

But the issue is: whenever a null or an empty object is passed to the Web API method, the method does not get hit (when I try to debug the method).

处理此类请求并将 422 响应发送回客户端的最佳方法是什么?

instances声明为默认参数,然后检查 null

public async Task<IActionResult> MyWebMethod(Id id,
        [FromBody] IReadOnlyCollection<MyCustomClass> instances = null)
{

    if (instances == null || instances.Count == 0)
    {
        return StatusCode(Convert.ToInt32(HttpStatusCode.UnprocessableEntity), instances);
    }
    //Proccess the data
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM