[FromForm],[FromQuery],[FromBody],[FromHeader],[FromQuery],[FromRoute]

时间:2019-10-23 14:16:27

标签: asp.net-core-2.1

我正在慢慢学习.Net Core。我开始思考何时使用[FromForm], [FromQuery],[FromBody],[FromHeader],[FromQuery],[FromRoute] [FromService]。 任何人都可以帮助我理解它们,因为我在何时使用哪个指令时感到困惑。

2 个答案:

答案 0 :(得分:1)

在这里您可以阅读一篇非常全面的文章:https://www.dotnetcurry.com/aspnet/1390/aspnet-core-web-api-attributes

但是,简而言之:您可以将这些属性添加到Web API控制器方法(操作)中。更精确地为其参数。例如:

public Task<Order> Get([FromQuery(Name = "identifier")] int id, [FromServices] IOrderService orderService)

他们告诉框架在调用动作时从何处注入值。其中大多数将使用 http请求本身的一部分,但是用[FromService]装饰的参数将由DI解析器注入值。

答案 1 :(得分:0)

简单来说,

[FromQuery] is to get values from the query string
[FromRoute] is to get values from route data
[FromForm] is to get values from posted form fields
[FromBody] is to get values from the request body
[FromHeader] is to get values from HTTP headers
[FromService] will have value injected by the DI (Dependency Injection) resolver

这些属性告诉 MVC 模型绑定器在调用或调用控制器操作时从哪里读取值。

有关模型绑定的更多信息以及上述属性的用法,请参阅以下 MSDN 链接

MSDN Reference -> Model Binding in ASP.NET Core