2014-04-20 46 views

回答

21

此代碼返回result將無法​​編譯,因爲result沒有實現IHttpActionResult ...

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

返回Json()總是返回HTTP 200和結果JSON格式,無論是在傳入請求的Accept頭的格式。

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)將對象轉換爲json格式,即序列化,並將其作爲HttpResponseMessage中的內容放置。

與ASP.NET的web api最好的事情是它創建簡單的方法來通過抽象來傳遞Http響應。最糟糕的是,在實際使用相對簡單的方法之前需要一些理解。

Here約爲serilization和JSON更多信息

Here更多的是信息關於IHttpActionResult

相關問題