我正在实施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值的正确映射?
答案 0 :(得分:2)
问题是1d93dfa2-sb34-403d-a766-bdcf1cf47a71
不是有效的Guid。
Guids只包含0-9
和a-f
,而您的字符串中包含s
,因此不是有效的Guid,因此Model Binder不会将任何内容绑定到您的属性中模型。