2014-09-12 90 views
0

在我的POST方法在Controller.cs中,迄今爲止我一直只寫入一個值到數據庫,所以最後我返回了狀態調用兩個HttpStatusCode.Created在同一行在asp.net Web API

var response = Request.CreateResponse<object>(HttpStatusCode.Created, iconOffset); 
return response; 

但現在,我寫兩個值到數據庫中,和我很想在POST方法的最後返回兩者的狀態,我該怎麼做:用下面的代碼的響應?我試過以下內容:

var response = Request.CreateResponse<object>(HttpStatusCode.Created, HttpStatusCode.Created, iconOffset, tempOffset); 
return response; 

但沒有奏效。

回答

1

你不能那樣做。響應代碼是HTTP響應代碼,只有一個。您可以將方法拆分爲兩個端點或返回表示操作狀態的狀態。

你的客戶端應該不知道服務(數據庫,服務......)背後發生了什麼,所以如果你發佈了一些東西給該端點,並且在語義上創建它只是返回Created。如果發生錯誤,您可能會返回InternalServerError。

這裏是HTTP狀態代碼的列表,你可以使用:http://en.wikipedia.org/wiki/List_of_HTTP_status_codes

2

你不會多HTTP狀態代碼返回給瀏覽器。

你提出了一個請求,你會得到一個響應 - 該響應要麼是OK要麼是另一個狀態碼,沒有多個響應碼的概念。

如果你需要你的迴應語焉不詳,返回與您的無論是消費端點狀態沿着model,一個例子是:

return Request.CreateResponse(HttpStatusCode.OK, new DatabaseUpdateResult(results)); 

如果您的應用程序可以接受/返回JSON,那麼這可以被客戶使用。