我正在研究 ASP.NET 中的 REST API。我做的第一件事是模型的模型绑定器,通过如下代码与模型绑定:
[ModelBinder(typeof(MyModelModelBinder))]
public class MyModel { ... }
并在一个动作中使用它
public IHttpActionResult Post(MyModel model) { ... }
我突然意识到,在参数类型之前添加 [FromBody] 之后......
public IHttpActionResult Post([FromBody]MyModel model) { ... }
...模型绑定器被忽略。我尝试通过在 BindModel 方法的开头和操作的开头放置一个断点来调试它,并意识到当我调用操作时,我会直接执行操作。当我删除 FromBody 属性时,ModelBinder 中的断点再次变为活动状态。
为什么我不能同时使用?为什么 FromBody 属性忽略了 ModelBinder?