我正在实现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 值映射?
问题是1d93dfa2-sb34-403d-a766-bdcf1cf47a71
不是有效的 Guid。
Guid 仅包含 0-9
和 a-f
,而字符串中包含s
,因此不是有效的 Guid,因此模型绑定器不会将任何内容绑定到模型中的该属性。