You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何手动处理类似数据注解的模型反序列化错误

ASP.NET Core Web API 手动反序列化时返回统一验证错误格式

我需要向ASP.NET Core Web API提交JSON数据与文件,不想为这类场景创建自定义模型绑定器,目前在控制器动作内手动处理反序列化,但遇到了验证错误格式不一致的问题。

当前控制器代码:

public async Task<IActionResult> AddDocumentReview([FromForm] string jsonData)
{
    try
    {
        var test = JsonSerializer.Deserialize<UploadedCertificationReviewDTO>(jsonData);
        return Ok(test);
    }
    catch(Exception ex)
    {
        return Ok(ex);
    }
}

如果直接将模型作为参数,当必填字段缺失时,API会自动返回标准格式的400错误,示例如下:

{
    "type": "https://tools.ietf.org/html/rfc9110#section-15.5.1",
    "title": "One or more validation errors occurred.",
    "status": 400,
    "errors": {
        "jsonData.state_details": [
            "The StateDetails field is required."
        ],
        "jsonData.policy_details": [
            "The PolicyDetails field is required."
        ],
        "jsonData.review_details": [
            "The ReviewDetails field is required."
        ]
    },
    "traceId": "00-d3ee1dd5985a3e7724d5fdb96ff79c1c-b4aa523ff73ce8c7-00"
}

但手动反序列化时,绑定失败只会抛出异常,返回的异常格式和上述标准验证响应格式不一致。想知道如何处理这种场景,让手动反序列化的验证错误也返回和自动绑定一致的字段错误信息。


内容的提问来源于stack exchange,提问作者Qiuzman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 16:22:49