25

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 のコンテンツに取得します。どういうわけか、これを行う別のより良い方法があると感じています。それに関するアイデアはありますか?

4

1 に答える 1

32

できるよ:

var response = new Response { responseCode = Response.ResponseCodes.ItemNotFound };
Request.CreateResponse<Response>(HttpStatusCode.OK, response);

既定では、Web API は HTTP 要求ヘッダーで指定された Content-Type に基づいて応答の形式を設定しますが、タイプ フォーマッタを指定できる CreateResponse メソッドにはいくつかのオーバーロードがあります。

Web API XML シリアライザーを削除して、必要に応じてすべての応答を強制的に JSON にすることもできます。

于 2013-02-14T15:05:21.420 に答える