2013-02-14 20 views
16

私はasp.net-mvc web apiを持っています。何らかの理由で(許可がないためにリダイレクトされます)、私は単純なオブジェクトを使用してコントローラメソッドで返すことはできません。したがって、リダイレクトできるHttpResponseMessageクラスが必要です。JSONとしてのHttpResponseMessageのコンテンツ

は現在HttpResponseMessageの内容に、JSONとしてシリアライズされたオブジェクトを、取得するには、この

var response = new Response { responseCode = Response.ResponseCodes.ItemNotFound }; 
var formatter = new JsonMediaTypeFormatter(); 
response.Content = new ObjectContent<Response>(response, formatter, "application/json"); 

をやってイム。どういうわけか、私はこれを行うための別の、よりよい方法があるという気持ちがあります。その上の任意のアイデア?あなたはデフォルトで

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

を行うことができます

答えて

24

、ウェブAPIはHTTPリクエストヘッダに指定されたコンテンツの種類に基づいて応答の形式を設定しますが、どこのことができますCreateResponse方法にいくつかのオーバーロードがあります型フォーマッタを指定します。

また、Web api xmlシリアライザを削除して、すべてのレスポンスをJSONにすることができます。必要なものがあれば、私の頭の上から外してください.HttpCOnfigurationのFormatters.Removeメソッドと思います。

+0

ありがとう!正常に動作します!私はjsonにすべてをシリアル化することを余儀なくされた:) – gosua

関連する問題