首页 > 解决方案 > C# ASP.NET MVC - 无法获取我从前端收到的 POST 数据的属性/数据

问题描述

我从前端发送了一个 POST 请求,其中包含我无法更改其结构的以下数据:

在此处输入图像描述

我正在尝试获取“过滤器”数据。

我为以下数据创建了一个模型,如下所示:

namespace Project.Models
{
    public class FooBar
    {
        public int skip { get; set; }
        public int page { get; set; }
        public Object filter { get; set; }

    }
}

但是,当尝试从 POST 请求中提取数据时,我得到了跳过/页面变量,但只得到了 {object} 用于我无法扩展的过滤器

在此处输入图像描述

我拥有的控制器是这样写的:

public HttpResponseMessage Foo([FromBody] FooBar request)
{
...

}

为什么我无法扩展对象或访问它的任何属性,我该如何更改?

标签: c#asp.net-mvcmodel

解决方案


尝试在模型中重现请求结构并将其用作操作参数。

public class FilterPageModel  {
    public int skip { get; set; }
    public int page { get; set; }
    public Filter filter{ get; set; }
}   

public class Filter
{         
    public string logic{ get; set; }
    public List<FieldFilter> filters{ get; set; }
}

public class FieldFilter
{         
    public string field{ get; set; }
    public string operator{ get; set; }
    public string value{ get; set; }
}

然后在控制器中:

public ActionResult Foo (FilterPageModel model){
    //...
}

推荐阅读