Я создаю форму поиска, используя ajax post, и отправляю данные фильтра как объект для поддержки случая ниже
x> 100 OR (x> 1 AND x <10) OR (x> 15 AND x < 20)
данные фильтра:
"filters": {
"LogicalOperator" : "or",
"FilterDescriptors":
[
{ "Member": "x", "Operator": "gt", "Value": 100 },
{
"LogicalOperator" : "and",
"FilterDescriptors":[
"Member": "x", "Operator": "gt", "Value": 1,
"Member": "x", "Operator": "lt", "Value": 10
]
},
{
"LogicalOperator" : "and",
"FilterDescriptors":[
"Member": "x", "Operator": "gt", "Value": 15,
"Member": "x", "Operator": "lt", "Value": 20
]
},
]
}
В контроллере у меня есть фильтры в качестве параметра
[HttpPost]
public IActionResult GetX(CompositeSearch filters){
// get data and apply filters
}
в CompositeSearch Class есть
public class CompositeSearch : IFilter {
public String LogicalOperator {get;set;}
public List<IFilter> FilterDescriptors {get;set;}
}
public class FilterSearch : IFilter{
public string Member {get; set;}
public string Operator {get; set;}
public object Value {get; set;}
}
проблема в том, что когда я отправляю данные обратно и отлаживаю фильтры параметров, он равен нулю, мой вопрос в том, как я сопоставил этот объект с фильтром параметров? спасибо