簡體   English   中英

C#Web API通用響應以獲取成功狀態

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM