当前位置: 首页 > 知识库问答 >
问题:

Web Api 2中的模型[Frombody]和Guid映射

葛言
2023-03-14

我正在实现 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"
}

名称被正确设置为“Name ”,但Guid每次都生成为新的Guid。

请问是什么导致了这个问题?如何设置Guid值的正确映射?

共有1个答案

祁晟
2023-03-14

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

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

 类似资料:
  • 当我尝试通过枚举将源中的字符串映射到目标中的整数时。ModelMapper失败。 来源 目的地 字符串和整数之间的映射在枚举中定义

  • 我可以同时使用“来自表单”和“从正文”属性来操作吗?

  • 我有一个用户的Entity-DTO转换器,如下所示: 我有很多Entity-DTO要管理,所以我想像这样抽象转换器 我的问题是:我必须放置什么而不是???

  • 我试图在我的java REST-API中映射openAPI模型(使用Swagger代码生成)和JPA实体(从HiberNate中的数据库模式生成),以便我可以使用JPA(Hibernate)实体将接收到的模型保存到数据库中,并使用模型创建从数据库中获取数据的响应。 我知道我可以分别创建使用模型和实体,并创建一种从一个转换到另一个的机制。然而,如果模型中的数据库或字段有任何变化,我需要更新模型和实体

  • 本文向大家介绍nhibernate 要映射的模型样本,包括了nhibernate 要映射的模型样本的使用技巧和注意事项,需要的朋友参考一下 示例 NHibernate使用类来映射到表或视图中。Plain Old CLR Object对于持久性类,创建(POCO,有时也称为普通普通CLR对象)是一种很好的做法。POCO的数据可通过标准.NET属性机制访问,从而使内部表示不受公共可见界面的影响。 NH

  • 当json更改为(小写命名与Java字段名相同)时工作正常: 但是,我需要在JSON中使用大写字段命名。 看起来不起作用。 是正确的映射吗?