【问题标题】:Pass a list of complex object in query string to WEB API将查询字符串中的复杂对象列表传递给 WEB API
【发布时间】:2018-06-04 12:34:55
【问题描述】:

我有一个使用[FromUri] 将复杂类型对象绑定到我的视图模型的WEB API 方法,在这个视图模型中,我有一个复杂对象列表。当我发出 GET 请求时如何填充此列表?

这是我的 WEB API 方法:

[HttpGet]
public HttpResponseMessage ListPaged([FromUri]PaginationReParams parameters)
{
   // DO SOMETHING HERE...
}

PaginationReqParams 视图模型

public class PaginationReqParams
    {
        public PaginationReqParams()
        {
            this.Filters = new List<FiltersReq>();
        }

        public List<FiltersReq> Filters { get; set; }
        public Int32 Page { get; set; }
        public Int32 PageSize { get; set; }
    }

FiltersReq 类

public class FiltersReq 
    {
        public String Field { get; set; }
        public String Value { get; set; }
        public String ComparisonOperator { get; set; }
    }

当我将参数传递给我的查询字符串时,就像“page”一样,它会正常绑定,但是如何绑定“Filters”参数?

【问题讨论】:

    标签: rest asp.net-web-api query-string


    【解决方案1】:

    像这样传递参数:

    ?page=1&pagesize=10&filters[0].Field=name&filters[0].Value=aladdin&filters[0].ComparisonOperator=eq&filters[1].Field=age&filters[1].Value=18&filters[1].ComparisonOperator=eq
    

    【讨论】:

    • 允许的最大 URL 长度仍然是 2,083 个字符 :)
    猜你喜欢
    • 1970-01-01
    • 2016-06-12
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 2017-09-22
    • 1970-01-01
    • 1970-01-01
    • 2019-06-12
    相关资源
    最近更新 更多