【问题标题】:How can I pass object param to get method in web api?如何传递对象参数以获取 web api 中的方法?
【发布时间】:2019-10-28 08:10:59
【问题描述】:

如何将对象参数传递给 get 方法?我搜索了很多, 例如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 中使用

【问题讨论】:

  • 我只能考虑 JSON stringify 并将结果字符串添加为查询参数。
  • 没有用;我已经试过了
  • 具体你要找[FromQuery]
  • 无法将复杂类型作为get方法传递,所以我决定定义post方法,看起来更合适

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


【解决方案1】:

一般情况下,我们使用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

【讨论】:

    猜你喜欢
    • 2021-03-23
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2018-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多