2014-04-20 5 views
8

ASP.NET WebAPI 2 में, निम्न के बीच अंतर क्या है:IHttpActionResult लौटने आइटम के बीच का अंतर, Json (आइटम) और ठीक (आइटम)

public <IHttpActionResult> GetItem(Guid id) 
{ 
    // ... code ..., Item result = .... 
    return result; 
} 

public <IHttpActionResult> GetItem(Guid id) 
{ 
    // ... code ..., Item result = .... 
    return Json(result); 
} 


public <IHttpActionResult> GetItem(Guid id) 
{ 
    // ... code ..., Item result = .... 
    return Ok(result); 
} 

उत्तर

21

result लौटने संकलन नहीं होगा के रूप में, यह कोड resultIHttpActionResult को लागू नहीं करता है ...

public <IHttpActionResult> GetItem(Guid id) 
{ 
    // ... code ..., Item result = .... 
    return result; 
} 

रिटर्निंग Json() हमेशा HTTP 200 और JSON प्रारूप, में परिणाम देता है कोई बात नहीं क्या प्रारूप भेजे अनुरोध के शीर्षक को स्वीकार कर रही है।

public <IHttpActionResult> GetItem(Guid id) 
{ 
    // ... code ..., Item result = .... 
    return Json(result); 
} 

Ok() रिटर्न रिटर्निंग HTTP 200 है, लेकिन परिणाम क्या स्वीकार अनुरोध हेडर में निर्दिष्ट किया गया था के आधार पर स्वरूपित हो जाएगा।

public <IHttpActionResult> GetItem(Guid id) 
{ 
    // ... code ..., Item result = .... 
    return Ok(result); 
} 
1

बस पिछले स्पष्टीकरण के लिए एक अतिरिक्त:

वापसी प्रकार अपने fuctions के लिए कर रहे हैं: IHttpActionResult

इसलिए उम्मीद विधि एक IHttpActionResult जो HttpResponseMessage के लिए एक इंटरफेस है वापस जाने के लिए के लिए है। HttpResponseMessage में हेडर, सामग्री और स्टेटस कोड जैसे उपयोगी गुण हैं।

इसलिए, Ok(result)HttpResponseMessageOk स्थिति कोड और सामग्री के साथ देता है, जो इस मामले में परिणाम है। इस बीच, Json(result) ऑब्जेक्ट को जेसन प्रारूप, उर्फ ​​सीरियलाइजेशन में परिवर्तित करता है, और इसे HttpResponseMessage में सामग्री के रूप में रखा जाता है।

एएसपी.नेट के साथ एक वेब एपीआई के बारे में सबसे अच्छी बात यह है कि यह एब्स्ट्रक्शन के माध्यम से एचटीपी प्रतिक्रियाओं को पारित करने के सरल तरीकों को बनाता है। सबसे बुरी बात यह है कि वास्तव में अपेक्षाकृत सरल तरीकों का उपयोग करने से पहले थोड़ा सा समझ लेती है।

Here serilization और json बारे में अधिक जानकारी

Here IHttpActionResult

के बारे में जानकारी के बारे में अधिक है
संबंधित मुद्दे