ASP.NET MVC WEB APIがあります。いくつかの理由により(承認がないためリダイレクトされます..)、単純なオブジェクトを使用してそれをコントローラーメソッドで返すことはできません。したがって、リダイレクトを許可するHttpResponseMessageクラスが必要です。
現在、私はこれをやっています:
var response = new Response { responseCode = Response.ResponseCodes.ItemNotFound };
var formatter = new JsonMediaTypeFormatter();
response.Content = new ObjectContent<Response>(response, formatter, "application/json");
.. JSONとしてシリアル化されたオブジェクトをHttpResponseMessageのコンテンツに取得します。どういうわけか、これを行うための別の、より良い方法があると感じています。それについてのアイデアはありますか?
できるよ:
var response = new Response { responseCode = Response.ResponseCodes.ItemNotFound };
Request.CreateResponse<Response>(HttpStatusCode.OK, response);
デフォルトでは、Web APIはHTTPリクエストヘッダーで指定されたContent-Typeに基づいて応答の形式を設定しますが、タイプフォーマッターを指定できるCreateResponseメソッドにはいくつかのオーバーロードがあります。
また、Web API XMLシリアライザーを削除して、必要に応じてすべての応答を強制的にJSONにすることもできます-頭の中で、HttpConfigurationのFormatters.Removeメソッドだと思います。