在Web Api 2.2中,我们可以通过从控制器返回来返回位置标头URL,如下所示:
return Created(new Uri(Url.Link("GetClient",new { id = clientId })),clientReponseModel);
Url.Link(..)将根据控制器名称GetClient相应地解析资源URL:
在ASP.NET 5 MVC 6的Web Api中,Url在框架中不存在,但CreatedResult构造函数确实具有location参数:
return new CreatedResult("http://www.myapi.com/api/clients/" + clientId,journeyModel);
如何在不必手动提供此URL的情况下解析此URL,就像我们在Web API 2.2中所做的那样?
解决方法
我没有意识到,但CreatedAtAction()方法满足于此:
return CreatedAtAction("GetClient",new { id = clientId },clientReponseModel);
确保您的控制器派生自MVC的Controller.