我正在 Mac 上的 asp.net vnext 中构建一个简单的 WebApi。我已按照本教程中设置的示例进行操作,但我遇到了一个问题,即我在控制器方法中设置的响应代码被覆盖
在我的 CrudController 中采用这个方法:
[HttpPost]
public void Post([FromBody]CrudObject crudObject)
{
var url = Url.RouteUrl("GetByIdRoute", new {id = 1},
Request.Scheme, Request.Host.ToUriComponent());
Context.Response.StatusCode = 201;
Context.Response.Headers["Location"] = url;
}
当我卷曲这个或用 PostMan 击中它时,我应该看到一个 201 Created 响应和一个 Location 标头将我指向另一个 url。当我使用 kestrel 运行它时,我得到 Location 标头,但响应代码是 204 No Content。
我假设这是 vnext 中间件覆盖我对状态代码的更改。那正确吗?如果是这样,它应该覆盖我的状态代码还是一个错误?如果这是正确的行为,我应该如何进行重定向?