我有这个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();
想法?