2012-10-03 9 views
8

मैं समझता हूं कि वेब एपीआई स्वीकार करने के लिए सामग्री वार्ता का उपयोग करता है - सामग्री-प्रकार जेसन या एक्सएमएल लौटने के लिए। यह पर्याप्त नहीं है और मुझे व्यावहारिक रूप से यह तय करने की आवश्यकता है कि क्या मैं जेसन या एक्सएमएल वापस करना चाहता हूं।एमवीसी वेब एपीआई कंट्रोलर से JSON कैसे वापस करें

इंटरनेट HttpResponseMessage<T> का उपयोग करने का अप्रचलित उदाहरण, अब MVC 4.

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"); 
    } 

में मौजूद है जो मैं ऊपर कोड इतना है कि यह काम करता है कैसे बदल सकता हूँ से भर जाता है? इस तरह

उत्तर

23

का प्रयास करें:

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); 
    }  
} 

या और भी बेहतर, इस तरह के पाइपलाइन बुनियादी सुविधाओं कोड के साथ अपने नियंत्रक को अव्यवस्थित से बचने के लिए आप भी एक कस्टम मीडिया फ़ॉर्मेटर लिख सकते हैं और इसके अंदर इस परीक्षण प्रदर्शन कर सकता है।

+0

सही! मेरी गलती यह थी कि Get() विधि में वापसी का प्रकार टोकन रेस्पॉन्स था। धन्यवाद! – user1662812

संबंधित मुद्दे