发送复杂对象GET与POST

时间:2017-02-02 17:24:19

标签: http asp.net-web-api get

我想知道当它仅用于查找数据时发送复杂对象的最佳方法是什么。我有一个网格,其中分页,过滤,排序等将在服务器端进行。所以我必须在每次请求时发送所有数据。

public class DataConfiguratorDto
{
    [Required]
    public Paging Paging { get; set; }

    public Sorting Sorting { get; set; }

    public IList<Filtering> FlitersList { get; set; }
}

public enum FilterCondition
{
    Equals,
    Contains,
    MoreThan,
    LessThan,
}

public class Paging
{
    public int RowNumberStart { get; set; }

    [GreaterThan(nameof(RowNumberStart))]
    public int RowNumberEnd { get; set; }
}

public class Filtering
{
    [Required]
    public string ColumnName { get; set; }

    [Required]
    public object FilterValue { get; set; }

    [Required]
    public FilterCondition FilterCondition { get; set; }

    [Required]
    public FilterType FilterType { get; set; }
}

public class Sorting
{
    [Required]
    public SortOption SortOption;

    [Required]
    public string ColumnName { get; set; }
}

public enum SortOption
{
    Asc,
    Desc
}

public enum FilterType
{
    And,
    Or
}

现在我可以使用POST,但它不是打破了它的目的吗?

这样做的最佳选择是什么?

1 个答案:

答案 0 :(得分:1)

您应该使用帖子,在正文中发送复杂对象(例如JSON)。

每个W3.org

“GET方法意味着检索由Request-URI标识的任何信息(以实体的形式)。”

“POST方法用于请求源服务器接受请求中包含的实体作为请求行中Request-URI标识的资源的新下属。”

有关详细信息,请参阅here