Wer*_*ner 5 c# rest asp.net-web-api2
在Web API 2 POST方法中,似乎最好的响应方法是使用CreatedAtRoute方法。但是,在某些响应中,我希望响应的主体为空。因此,仅以201和位置标头答复。
我希望这可以工作:
[HttpPost]
[ResponseType(typeof(Product))]
public IHttpActionResult Post([FromBody] Product product)
{
products.Add(product);
return CreatedAtRoute<Product>("", new {id = product.Id}, null);
}
Run Code Online (Sandbox Code Playgroud)
但是,在Postman中进行检查时,它实际上返回字符串“ null”。有没有一种优雅的方法可以做到这一点?
小智 0
为了简单起见,您可以使用内置的“Created”方法,但您已经说过响应类型应该是“Product”。
Created("getPathHere", newProductObject);
否则,删除 Product 的响应类型,返回新的产品 id(如果不是即时的,则返回此创建过程所处的任何状态)。
Created(string.Format("/api/Products/{0}", productId), new { ProductId = productId, Status = "Awaiting Manufacture" });