我有一个带Post方法的ODataController,该方法应该将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)
{
...
}
}
就我而言,返回CreatedAtRoute时,我收到“ InvalidOperationException:没有路由与提供的值匹配”。我可以通过将代码更改为来解决此问题:
return Created($"{baseUri}/odata/Task({id})", new object());
有什么方法可以代替使用CreatedAtRoute并使其返回正确的OData路径?
您在Created方法中返回的路线:"{baseUri}/odata/Task({id})"
不存在。最简单的解决方法是更改您的URL以匹配您的控制器方法。