ApiController:响应中缺少位置

ApiController: missing location in response

在我的API项目中创建资源时,有运行这段代码

public class MyCtrl : ApiController
{
    ...
    if (isSuccess)
    {
        result.Id = newResource.Id;
        var locationUrl =  Request.RequestUri + "/" + id;

        return Created(locationUrl, result);
    }
}

但作为回应我只看到 id,如何强制 WebAPI 也 return locationId?

{
    "id": "YHEMPZIF2VHHP6X7"
}

喜欢

if (isSuccess)
{
    var locationUrl =  Request.RequestUri + "/" + id;
    var result = new { Id:newResource.Id, locationUrl: locationUrl   }
    return Created(locationUrl, result);
}

Created 方法的第一个参数在响应header 中传递给客户端。更准确地说,在 Location header。因此,为了访问它,您不必修改结果 object.

至于在客户端访问 headers。例如,在 ASP.NET MVC 中,您可以通过 Request.Headers 实现,在 Angular 中,通过 headers 属性 响应 object.