我有一个 Web API,它允许使用 GET/POST/PUT 进行基本 CRUD,但还包含通过以下方式访问的子对象/apipath/MyObject/{objectId}/SubObject/{subObjectId}
添加子对象使用此方法
[HttpPost]
[Route("{id}/Members")]
[Produces(typeof(TeamMember))]
public IActionResult AddTeamMember(Guid id, [FromBody] TeamMember teamMember)
{
//some processing here.
return CreatedAtAction(nameof(GetMember), new { id, memberId = teamMember.Id }, teamMember);
}
GetMember 方法如下所示
[HttpGet]
[Route("{id}/Members/{memberId}")]
public IActionResult GetMember(Guid id, Guid memberId)
{ //processing here
}
调用 CreatedAtActionAddTeamMember会抛出一个
'System.InvalidOperationException':没有路由匹配提供的值。
如果我更改 Route 标记GetMember以排除成员部分,它可以工作。Members那么,我如何告诉 CreatedAtAction在 id 和 之间应该有一个memberId?