将查询字符串中的复杂对象列表传递给WEB API [英] Pass a list of complex object in query string to WEB API

查看:73
本文介绍了将查询字符串中的复杂对象列表传递给WEB API的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have an WEB API method that uses [FromUri] to bind complex type object to my view model, and in this view model, I have a list of complex object inside it. How do I populate this list when I do a GET request?

这是来自 WEB API 的我的方法:

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

PaginationReqParams 视图模型

The PaginationReqParams view model

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类

The FiltersReq class

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

当我将参数传递给查询字符串(如页面")时,它会正常绑定,但是如何绑定过滤器"参数呢?

When I pass parameters to my query string Like "page" it binds normally, but how do I do to bind the "Filters" parameter?

推荐答案

传递如下参数:

?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

这篇关于将查询字符串中的复杂对象列表传递给WEB API的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆