Маршрут не запускается с помощью атрибутов маршрутизации и 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 - что ожидается.