HTTP Put - 在URI或正文中传递值?

时间:2015-08-18 07:15:53

标签: c# asp.net asp.net-web-api2 asp.net-web-api

如果我想传递两种基本类型intbool,我应该在URI中传递它们,如下所示:

[ResponseType(typeof(WriteResponse))]
[Route("Account/{clientId:int}/Client/DisableClient/{shouldDisable:bool}")]
[ResultFilter]
public IHttpActionResult PutDisableClient([FromUri]int clientId, [FromUri] bool shouldDisable)

或者我应该从正文传递1还是从URI传递1:

[ResponseType(typeof(WriteResponse))]
[Route("Account/{clientId:int}/Client/DisableClient")]
[ResultFilter]
public IHttpActionResult PutDisableClient([FromUri]int clientId, [FromBody] bool shouldDisable)

或两者都在身体?

每种情况的利弊是什么?

1 个答案:

答案 0 :(得分:0)

如果它是" put"那么最好的做法就是传递体内的价值。

在URI中,您只传递过滤器值。这背后的原因是,抓取您网站的漫游器只会过滤数据,而不会仅通过抓取来修改条目。