ASP.NET Core:从URL解析复杂结构

问题描述 投票:0回答:1

我有GET API方法:

[HttpGet]
public List<TripDto> Get([FromQuery]RequestDto req)
{
    // some logic here
}

并且RequestDto是复杂的对象:

public class RequestDto
{
    public List<SegmentDto> Segments { get; set; } = new List<SegmentDto>();
    public string SessionId { get; set; } 
}

public class SegmentDto
{
    public string Departure { get; set; }
    public string Arrival { get; set; }
    public DateTime Date { get; set; }
}

当我发送请求时:

http://localhost:5000/trips?Segments[0][Departure]=SIP&Segments[0][Arrival]=MOW&Segments[1][Departure]=MOW&Segments[1][Arrival]=SIP&SessionId=s1

在我的req变量中,我仅看到会话参数。如何从GET请求解析复杂的列表结构?

c# .net-core
1个回答
0
投票

1)您不需要在仅用于解析的类中初始化属性

public class RequestDto
{
    public List<SegmentDto> Segments { get; set; }
    public string SessionId { get; set; } 
}

2)对对象使用点表示法(无需大写名称)

?segments[0].departure=SIP&segments[0].arrival=MOW&...
© www.soinside.com 2019 - 2024. All rights reserved.