Определение маршрута с несколькими параметрами - PullRequest
0 голосов
/ 21 февраля 2020

Я хотел бы определить маршрут следующим образом

https://www.example.com/api/Company/Example/Sequence/0325671?Next=10&Reference=1&Option=none...

Где ... может быть от 0 до N параметров, которые могут быть нулевыми или по умолчанию, если не используются.

Могу ли я сделать это?

    public IHttpActionResult GetNextRange([FromUri] ParameterDto parameters)
    {

    }

    public class ParameterDto
    {
        public long Next { get; set; }

        public string Reference { get; set; }

        public string Option { get; set; }
    }

1 Ответ

1 голос
/ 21 февраля 2020

Текущие примеры для. NET Core - использование атрибута [FromQuery]. В случае, если он заполнен. NET [FromUri].

. Если параметры указаны в строке запроса, следует использовать атрибут [FromQuery] (если он есть. NET Core):

public IHttpActionResult GetNextRange([FromQuery] ParameterDto parameters)
{
}

Если вы хотите отобразить параметры строки запроса на объект, то вы должны добавить этот атрибут для каждого необходимого свойства:

public class ParameterDto
{
    [FromQuery]
    public long Next { get; set; }

    [FromQuery]
    public string Reference { get; set; }

    [FromQuery]
    public string Option { get; set; }
}

Вы также можете указать имя параметра:

[FromQuery(Name = "some_query_parameter_name")]

Если вы не знаете точных параметров (так зачем вам это нужно?), Вы можете получить все параметры из Request.Query (. NET Core) или Request.QueryString (Full. NET) свойство:

var keys = Request.Query.Keys; // or Request.QueryString.AllKeys;
var parameterValue = Request.Query["parameterName"]; // or Request.QueryString["parameterName"];
...