[英]C# web api generic response for success status
如何在WEB API2中創建通用響應,而不是始終編寫
return Ok(new { success = true });
所以我正在做這個,然后在角度檢查是否為response.success ==='true'
public IHttpActionResult Add(MyModel model)
{
if (ModelState.IsValid)
{
_helper.Create(model);
}
return Ok(new { success = true });
}
這取決於您的需求。 您想創建一個包含響應狀態的通用類嗎? 在這種情況下,您可以創建一個通用類。
public class Response
{
/// <summary>
/// Gets or sets a value indicating whether this instance is success.
/// </summary>
/// <value>
/// <c>true</c> if this instance is success; otherwise, <c>false</c>.
/// </value>
public bool IsSuccess { get; set; }
/// <summary>
/// Gets or sets the error message.
/// </summary>
/// <value>
/// The error message.
/// </value>
public string ErrorMessage { get; set; }
}
然后,您可以像這樣使用:
return Ok<Response>(new Response { ErrorMessage = "", IsSuccess = true });
或者,您可以使用不帶任何參數的“確定”響應,然后在您的角度應用程序上檢查請求的狀態碼:
return Ok();
角部分:
$http({
method: 'GET',
url: '/someUrl'
})}).then(function successCallback(response) {
//If it's Ok -> 200 HTTP
}, function errorCallback(response) {
//If error occured -> 500 HTTP etc.
});
當您從API返回Ok()
,實際發送的是HTTP狀態代碼200 。 Angular的AJAX函數使用該函數來確定是調用success
函數還是error
函數。 還有許多其他狀態代碼可以發送 ,但是並非所有人都有直接的Web API 2類來封裝它們。
僅返回Ok()
就足以告訴您的應用程序成功。 如果在通話期間可能發生多種情況,您將希望包括其他信息(您的對象)。 例如,由於您的操作方法稱為Add()
,因此您可能要返回的內容之一就是剛創建的對象的ID,但是如果不需要,則不必這樣做。
您應該做的是不要在體內返回任何東西,如果您success
擊中了Angular函數,那么它就成功了。 如果在呼叫過程中發生了某些情況,將不會返回OK / 200響應,而是將調用您的error
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.