繁体   English   中英

.net 核心控制器 - 是否向方法添加 [FromBody] 属性?

[英].net core controllers - Add [FromBody] attribute to method or not?

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

我不明白有什么意义?

这是示例:

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

vs 

public async Task<ActionResult> UploadImages(ProductImagesRequestDto productImagesRequestDto)

这个端点是一样的吗?

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

谢谢大家

干杯

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

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

如果您不提供任何活页夹,您将掌握模型活页夹的默认行为。 它将在默认可用的活页夹中搜索以匹配操作参数。 如果它不能匹配,就会出现模型状态错误或内容类型错误,如果它被称为使用FromBody绑定器,并且例如,帖子数据已使用x-www-form-urlencoded

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM