对于非可空int,传入null将在Delta <t>

时间:2018-03-20 13:12:23

标签: c# asp.net rest asp.net-web-api

我有一个更新实体的典型端点

public IHttpActionResult Patch([FromODataUri] int key, Delta<Individual> patch)

Individual有一个不可为空的int属性StatusId,它具有[Required]属性。什么时候&#34;&#34;传入,它正确抛出错误:

请求

{ 
  "statusId": ""
}

响应

{
    "error": {
        "code": "",
        "message": "Request contains validation errors.",
        "details": [
            {
                "target": "patch",
                "message": "",
                "innerError": {
                    "message": "Cannot convert the literal '' to the expected type 'Edm.Int32'."
                }
            }
        ]
    }
}

但是,当我传入null时,它不会给出验证错误,并且Delta对象不会将其列为已更改的属性。

请求

{ 
  "statusId": null
}

预期回复

{
    "error": {
        "code": "",
        "message": "Request contains validation errors.",
        "details": [
            {
                "target": "patch",
                "message": "",
                "innerError": {
                    "message": "Cannot convert null to the expected type 'Edm.Int32'."
                }
            }
        ]
    }
}

我们希望能够在为非可空字段传入null时验证并返回错误,而不是只是默默地忽略错误。

我将如何做到这一点?

0 个答案:

没有答案