gpt4 book ai didi

c# - Web API 模型绑定(bind)

转载 作者:可可西里 更新时间:2023-11-01 08:07:06 24 4
gpt4 key购买 nike

给定 ASP.NET Web API 路由:

example/{Id}

它映射到以下 ApiController 操作方法:

public void Example(Model m)
{
...
}

模型类定义为:

public class Model
{
public int Id { get; set; }
public string Name { get; set; }
}

当我将 JSON { "Name": "Testing"} 发布到 URL /example/123 然后 Id 属性时 Model 对象未绑定(bind)。它保持为 0 而不是 123。

如何使模型绑定(bind)也包含路由数据中的值?我宁愿不必为看似常见的用例编写自定义模型绑定(bind)器。任何想法将不胜感激。谢谢!

最佳答案

完成您要查找的内容的最简单方法是向您的方法添加另一个参数,并指定哪个参数来自请求的哪个部分。

例子:

[HttpPost]
public void Example([FromUri]int id, [FromBody]Model m) {
// ...
}

现在您的 /examples/{id} 路由将能够成功绑定(bind) - 因为 Example 方法有一个名为 id 的参数它正在 URI 中寻找。要填充您的模型,您也可以在其中传递 ID,或者执行如下操作:

[HttpPost]
public void Example([FromUri]int id, [FromBody]Model m) {
m.Id = id; // Make sure the model gets the ID as well.
}

然后只需将 { "Name": "Testing"} 中的内容发送到 /example/123 即可,如上文所述。

关于c# - Web API 模型绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11862164/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com