ApiController:响应中缺少位置

时间:2016-02-11 08:37:04

标签: c# .net http asp.net-web-api asp.net-apicontroller

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

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

        return Created(locationUrl, result);
    }
}

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

{
    "id": "YHEMPZIF2VHHP6X7"
}

2 个答案:

答案 0 :(得分:1)

喜欢

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

答案 1 :(得分:1)

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

enter image description here

关于访问客户端的标头。例如,在ASP.NET MVC中,您可以通过Request.Headers和响应对象的Angular via headers属性来完成。