-1

我正在开发小型网络应用程序,当涉及到控制器/端点时,我看到很多人[FromBody]在方法参数中添加了属性,而有些人没有。

我不明白这有什么意义?

这是示例:

public async Task<ActionResult> UploadImages([FromBody] ProductImagesRequestDto productImagesRequestDto)

vs 

public async Task<ActionResult> UploadImages(ProductImagesRequestDto productImagesRequestDto)

这个端点是一样的吗?

如果有任何...,这两种方法定义有什么区别?

感谢大家

干杯

4

2 回答 2

2

不,他们不是。当您提供活页夹时,您是在说要对活页夹建模以明确查找的位置和查找内容:

  • FromRoute绑定路由数据中的值
  • FromBody绑定请求正文中的值
  • FromQuery绑定查询字符串中的值
  • FromForm绑定来自表单字段的值
  • FromHeader绑定来自标头的值

如果您不提供任何活页夹,您将掌握模型活页夹的默认行为。它将在默认可用的活页夹中搜索以匹配操作参数。如果它无法匹配任何内容,则会出现模型状态错误或内容类型错误,如果据说使用FromBodybinder 时,例如 post 数据已使用x-www-form-urlencoded.

于 2020-11-16T23:44:53.193 回答
0

参数可以通过 URI 或作为请求正文的一部分传递。

指定 FromBody 属性只是确保参数作为请求正文的一部分而不是在 URI 中传递。

根据传递的参数类型(以及该数据的敏感程度),将所有参数都包含在请求正文中可能被认为是最佳实践,以使其在 URI 中不可见

于 2020-11-16T23:12:04.780 回答