如何使用ASP.Net 5 CreatedAtAction

时间:2015-12-28 02:17:41

标签: http-post asp.net-core

我正在尝试创建一个HttpPost来创建一个实体,并且我希望返回一个创建的201,其中位置标头设置为https://mysite/api/entity/1。在返回IActionResult时,我无法弄清楚如何做到这一点。

像这样调用

return CreatedAtAction("Get", new { id = entity.Id }, "/{id}");

我得到https://mysite/api/entity?id=11

我无法弄清楚如何得到我想要的东西。

1 个答案:

答案 0 :(得分:1)

我将路径名称分配给Get操作并按名称引用它以使其工作。例如:

    // GET api/values/5
    [HttpGet("{id}", Name="GetAction")]
    public string Get(int id)
    {
        return "value";
    }

    // POST api/values
    [HttpPost]
    public IActionResult Post([FromBody]string value)
    {
        return this.CreatedAtRoute(
          "GetAction", new { id = 5 }, new { id = 5 });
    }