Webapi模型绑定器不构造复杂类型?

时间:2014-07-17 22:42:55

标签: asp.net-web-api

我有这个api行动:

[Route("~/api/products/{productCode}/price")]
public IHttpActionResult PutProductPrice(string productCode, 
PriceBindingModel binding) {

当我向此端点发送请求而没有这样的请求主体时:

Accept: application/json
Content-Type: application/json
Content-Length: 0

在PutProductPrice的主体中,绑定为null。 (与MVC不同)

我习惯使用Model Binder创建一个PriceBindingModel,使用它的默认无参数构造函数并分配值(在这种情况下没有)

这应该是什么行为?我应该检查所有api请求中Model是否为空? 我想这是一个我还没有看到的错误或其他问题。

注意:在请求上发送{}(空对象),会创建BindingModel,并在模型状态失败时获取预期的错误请求。 (我认为它应该发生在第一个场景中(发送一个空体)。

注2:在控制器的第一行执行此操作,使其按预期工作:

binding = binding ?? new PriceBindingModel();

想法?

0 个答案:

没有答案