如何通过对象参数获取Web API中的方法?

时间:2019-06-13 17:06:32

标签: asp.net-web-api asp.net-core-2.0

如何通过对象参数获取方法?我搜了很多 例如how to pass parameters to asp.net web api get method?

这里提到我们应该使用[FromUri],但在.NET Core 2中看不到[FromUri]

[HttpGet]
public IHttpActionResult GetDetails([FromUri] RetrieveDetails  eDetails)
{}

以下是课程

public class RetrieveDetails
{ 
    public string Name{ get; set; }     
    public string Type { get; set; } 
    public List<MoreDetails> MoreDetails { get; set; }
} 

public class MoreDetails  { 
  public string DetailName{ get; set; } 
}

但是FromUri不能在.NET Core 2中使用

2 个答案:

答案 0 :(得分:0)

通常,我们使用POST方法来传递复杂类型。但是对于[FromQuery]方法,您也可以使用GET来实现。

操作:

[HttpGet("Test")]
public async Task<IActionResult> GetDetails([FromQuery]RetrieveDetails eDetails)

网址:

.../Test?eDetails.Name=hello&eDetails.Type=world&eDetails.MoreDetails[0].DetailName=size&eDetails.MoreDetails[1].DetailName=price

答案 1 :(得分:0)

您可以使用带有响应正文的get方法。 https://docs.microsoft.com/en-us/aspnet/core/web-api/?view=aspnetcore-2.2

[HttpGet]
public IHttpActionResult GetDetails([FromBody] RetrieveDetails  eDetails)
{}

更多信息 HTTP GET with request body