У меня есть ODataController с методом Post, который должен возвращать URL-адрес недавно созданного ресурса OData, что-то вроде следующего:
public class TasksController: ODataController
{
[HttpPost]
public IActionResult Post([FromBody] Request request)
{
...
return CreatedAtRoute("GetTask", new Dictionary<string, object>{{"id", id}}, new object());
}
[ODataRoute(RouteName = "GetTask")]
public IActionResult Get(int key)
{
...
}
}
В моем случае я получаю "InvalidOperationException: ни один маршрут не соответствует предоставленным значениям" при возврате CreatedAtRoute. Я могу исправить проблему, изменив код на:
return Created($"{baseUri}/odata/Task({id})", new object());
Есть ли способ использовать CreatedAtRoute вместо этого и заставить его возвращать правильный путь OData?