2012-10-03 14 views
8

WEB APIがAccept-Content-Typeのコンテンツネゴシエーションを使用してjsonまたはxmlを返すことを理解します。 これは十分ではありません。私はjsonまたはxmlを返すかどうかを実用的に判断できる必要があります。MVC WEB APIコントローラからJSONを返す方法

インターネットは、私はそれが動作するように上記のコードを変更するにはどうすればよい

tokenResponse response = new tokenResponse(); 
response.something = "gfhgfh"; 

    if(json) 
    { 
     return Request.CreateResponse(HttpStatusCode.OK, response, "application/json"); 
    } 
    else 
    { 
     return Request.CreateResponse(HttpStatusCode.OK, response, "application/xml"); 
    } 

MVC 4にもはや存在しないHttpResponseMessage<T>を使用しての時代遅れ例が殺到していますか?あなたもカスタムメディアフォーマッタを書いて、その中にこのテストを実行することができ、このような配管のインフラストラクチャコードを使用してコントローラを乱雑に避けるために、

public HttpResponseMessage Get() 
{ 
    tokenResponse response = new tokenResponse(); 
    response.something = "gfhgfh"; 

    if(json) 
    { 
     return Request.CreateResponse(HttpStatusCode.OK, response, Configuration.Formatters.JsonFormatter); 
    } 
    else 
    { 
     return Request.CreateResponse(HttpStatusCode.OK, response, Configuration.Formatters.XmlFormatter); 
    }  
} 

またはより良い:

答えて

23

は次のように試してみてください。

+0

右!私の間違いは、Get()メソッドにtokenResponseの戻り値の型があることでした。ありがとう! – user1662812

関連する問題