[FromForm]、[FromQuery]、[FromBody]、[FromHeader]、[FromQuery]、[FromRoute]

Vij*_*jay 12 asp.net-core-2.1

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

小智 13

简单来说,

[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
Run Code Online (Sandbox Code Playgroud)

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

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

MSDN 参考 -> ASP.NET Core 中的模型绑定


Zor*_*goZ 6

在这里您可以阅读一篇相当全面的文章: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)
Run Code Online (Sandbox Code Playgroud)

他们告诉框架在调用操作时从哪里注入值。它们中的大多数将使用http请求本身的某些部分,但是用 修饰的参数[FromService]将具有由DI解析器注入的值。