我正在实现 web api 2,我发现 Guid 映射有奇怪的行为。这是我的问题定义
这是我的模型示例
public class MyModel
{
public Guid Id { get; set; }
public string Name { get; set; }
}
我在我的 Controller 上执行以下操作,我将 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。
Guids 仅包含 0-9
和 a-f
,而您的字符串中包含 s
,因此不是有效的 Guid,因此Model Binder 不会将任何内容绑定(bind)到模型中的该属性。
关于c# - Web Api 2 中的模型 [FromBody] 和 Guid 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27151930/