Web API 2 中的模型 [FromBody] 和 Guid 映射

本文关键字:FromBody Guid 映射 模型 API Web | 更新日期: 2023-09-27 18:32:10

我正在实现Web api 2,我发现了Guid映射的奇怪行为。这是我的问题定义

这是我的模型示例

public class MyModel
{
    public Guid Id { get; set; }
    public string Name { get; set; }
}

我在控制器上有以下操作,其中我有 MyModel 作为输入 [FromBody]

[HttpPost, Route("create")]
public IHttpActionResult Create([FromBody]MyModel model)
{
    // some implementation
}

一切正常,而不是 Guid 映射。当我在请求正文中发布新 MyModel 的 JSON 时:

{
    "Id":"1d93dfa2-sb34-403d-a766-bdcf1cf47a71",
    "Name":"name"
}
名称

正确设置为"名称",但每次都会将 Guid 生成为新的 Guid。

请问什么会导致此问题?如何设置正确的 Guid 值映射?

Web API 2 中的模型 [FromBody] 和 Guid 映射

问题是1d93dfa2-sb34-403d-a766-bdcf1cf47a71不是有效的 Guid。

Guid 仅包含 0-9a-f ,而字符串中包含s,因此不是有效的 Guid,因此模型绑定器不会将任何内容绑定到模型中的该属性。