ASP.NET Core 2.0 中的验证:语法与验证问题

在我的 ASP.NET Core 2.0 应用程序中,我想400 Bad Request在输入中存在语法问题(例如格式422 Unprocessable Entity错误的json)和其他错误(例如 Required、StringLength 等)时抛出 a 。


有没有办法知道(也许调查ModelState)是语法(400)问题还是验证问题(422)?


这是我正在使用的控制器操作...


    [HttpPost]

    public async Task<IActionResult> CreateArticle([FromBody] CreateArticleInput input)

    {

        if(!ModelState.IsValid)

        {

            // Return 400 or 422

        }

    }


慕标5832272
浏览 140回答 3
3回答

狐的传说

无法在模型绑定器级别混合匹配返回代码。即使是像 FluentValidation 这样的 3rd 方解决方案,也只允许您针对失败的结果使用单一的返回模式。正如人们所建议的,在控制器级别添加额外的语法/语义检查,并保持输入验证不变 - 更清晰。
打开App,查看更多内容
随时随地看视频慕课网APP