Asp.Net Core,[FromQuery]复杂类

时间:2018-10-16 13:58:38

标签: c# asp.net-core asp.net-core-2.0

我有以下课程:

public class TextFilter
{
    public string Value { get; set; } = "";
    public EnumTextFilterSearchMethod SearchMethod { get; set; } = EnumTextFilterSearchMethod.EQ;
}

public class ContractsFilter
{
    public TextFilter ContractNumber { get; set; } = new TextFilter();

    public TextFilter OrderNumber { get; set; } = new TextFilter();
}

和控制器:

[HttpGet("")]
public IActionResult Contracts([FromQuery] ContractsFilter filter = null)

查询字符串显示为:

http://localhost:63553/contracts?ContractNumber=my.namespace.TextFilter&OrderNumber=my.namespace.TextFilter

但是我需要查询字符串的格式如下:

http://localhost:63553/contracts?ContractNumber.Value=any_contract_number&ContractNumber.SearchMethod=EQ&OrderNumber.Value=any_order_number&OrderNumber.SearchMethod=EQ

如果我手动输入查询字符串,则控制器可以正确解析。

如何使ContractsFilter类具有包含TextFilter类的所有属性的查询字符串显示?

1 个答案:

答案 0 :(得分:0)

以与尝试使用[FromUri]属性相同的方式,在参数前尝试使用[FromBody]属性。