Маршрут не запускается с помощью атрибутов маршрутизации и FromUri

Я хочу запустить ниже маршрут с этим URL:

http://localhost:66777/api/productdetails?articlegroup=1&producedat=2012-01-01

Что не так с моим - я думаю - атрибутом маршрута?

[Route("api/productdetails/{articlegroup:int}/{producedat:datetime}")]
[HttpGet]
public async Task<IHttpActionResult> GetProductDetails([FromUri] ProductDetailsRequestDTO dto)
{
    //...
}

public class ProductDetailsRequestDTO
{
    public int ArticleGroup { get; set; }
    public DateTime ProducedAt { get; set; }
}

1 ответ

Решение

Шаблоны маршрутов поддерживают только "путь", а не строку запроса. В приведенном выше примере у вас есть articlegroup а также producedat в качестве переменных маршрута на "пути", где вы отправляете данные для них в строке запроса. Поскольку при сопоставлении с шаблоном маршрута не удается найти эти данные в пути, вы, вероятно, получаете 404 - что ожидается.

Другие вопросы по тегам