【发布时间】:2016-02-21 10:49:40
【问题描述】:
我有一个如下所示的 WebAPI POST 控制器:
[ResponseType(typeof(Product))]
public async Task<IHttpActionResult> PostProduct(Product product)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.Products.Add(product);
await db.SaveChangesAsync();
return CreatedAtRoute("DefaultApi", new { id = product.Id }, product);
}
为了有效,它需要几个值,比如名称、价格、URL、ManufactureID、StatusID。
但是,例如,POST 并不总是包含 StatusID 的值,因此上述操作将失败,因为 i 不能为空。 但是当 POST 没有发送值时,我想“拦截”并在代码中设置值。让我们说int 1。
我该怎么办?
我一直在使用 DTO 从 API 中提取数据,以一种很好且可查看的方式。 DToes 也可以在 POST 中使用吗?如果是这样,怎么做?或者任何其他方法来设置数据,如果它不存在于 POST 中?
【问题讨论】:
标签: asp.net-web-api asp.net-web-api2