为什么在HttpPut调用中使用路由和正文?

时间:2019-04-15 18:45:36

标签: c# asp.net-core

我正在重构端点,并且遇到了这种方法:

public async Task<ActionResult<Foo>> Put([FromRoute]int fooId, [FromBody]Foo model)
{
   ...
   return Ok(data);
}

我试图了解为什么他们会同时使用[FromRoute][FromBody]。这是不好的做法还是实际上在某种程度上有所帮助(即出于安全原因)?该ID已在模型中传递,因此我认为这是一种不好的做法。

1 个答案:

答案 0 :(得分:2)

这是惯例。

FromRoute来自URL。您需要一些东西来识别资源。 FromBody是请求正文,您自己需要资源值。

信任或使用请求正文作为资源ID并不常见。