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 応答と、別の URL を指す Location ヘッダーが表示されます。kestrel を使用してこれを実行すると、Location ヘッダーが表示されますが、応答コードは 204 No Content です。
これは、ステータス コードへの変更をオーバーライドする vnext ミドルウェアであると想定しています。そうですか?もしそうなら、それは私のステータスコードを上書きするべきですか、それともバグですか? それが正しい動作である場合、どのようにリダイレクトを行うべきですか?