如何传递对象参数来获取 Web api 中的方法?

Ozm*_*men 3 asp.net-web-api asp.net-core-2.0

如何将对象参数传递给 get 方法?我搜索了很多,例如如何将参数传递给asp.net web api get方法?

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

[HttpGet]
public IHttpActionResult GetDetails([FromUri] RetrieveDetails  eDetails)
{}
Run Code Online (Sandbox Code Playgroud)

以下是课程

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

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

Rya*_*yan 5

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

行动:

[HttpGet("Test")]
public async Task<IActionResult> GetDetails([FromQuery]RetrieveDetails eDetails)
Run Code Online (Sandbox Code Playgroud)

网址:

.../Test?eDetails.Name=hello&eDetails.Type=world&eDetails.MoreDetails[0].DetailName=size&eDetails.MoreDetails[1].DetailName=price
Run Code Online (Sandbox Code Playgroud)