我有这个模型
public class FooModel
{
public Guid ReferenceId { get; set; } // <-- this is the important part
public string SomeValue { get; set; }
}
我有这个控制器端点
[HttpPost]
[ProducesResponseType(200)]
public async Task<IActionResult> SaveFoo([FromBody] FooModel model, CancellationToken ct)
{
await _fooManager.SaveFoo(model, ct);
return Ok();
}
我的问题
如果客户端发布了一个类似这样的json,并且referenceId的GUID无效,接收到的整个model
对象为null。
{
"referenceId": "some-invalid-guid!",
"someValue": "some valid value"
}
我想要的结果
我希望端点接收到的对象不为null,并且包含分配的其他值。referenceId
GUID将为null或空。
我所尝试的
我尝试将Guid设置为可空。示例:public Guid? ReferenceId { get; set; }
我想在我的WebApi项目中有一些反序列化设置需要修改,但我不知道在哪里。
2条答案
按热度按时间xqkwcwgp1#
我建议将ReferenceId声明为字符串而不是Guid,然后在发布后使用Guid.TryParse验证ReferenceId。
4dc9hkyq2#
修复它唯一方法是使用JsonElement作为输入参数(如果使用Newtonsoft.Json,则使用JObject)
牛顿软件公司