2017-06-13 19 views
-1

我需要知道檢索返回代碼以刪除Azure DataBase數據(我使用DeleteAsync)的函數/方法,以便在發生錯誤或NO-OK的情況下向我顯示一個屏幕出現錯誤。我需要不同的操作相同(INSERT,UPDATE ...)DeleteAsync的返回代碼 - Xamarin與Azure

下一步顯示我的代碼...

 void delete_click_button(object sender, EventArgs a) 
    { 
     if (ID != "") 
     { 
      App.AzureService.Delete(ID); 
      **//If return correct code....{** 

       DisplayAlert("Warning", "Delete satisfactory", "Back"); 
       Navigation.PopAsync(); 
      **} 
      //If return code error when delete.... 
      { 
       //display message 
      }** 
     } 

謝謝,我希望答案:d

+0

刪除是冪等性的,如果你包含服務器錯誤返回500,如果這些刪除成功返回200,如果資源不存在,(取決於你要求的)返回200; –

+0

我如何知道它是否返回500,200 ..?我不知道如何看到什麼回報... – Josemio

+0

你不需要從你的控制器返回錯誤代碼。您應該有一個處理錯誤並根據錯誤返回代碼的服務。如果一切正常,你會返回一個200.去研究錯誤代碼 –

回答

0

根據你的描述,我假設您使用Azure移動應用程序作爲您的移動後端。對於C#移動應用程序的後端,默認如下TableController下刪除操作將被定義:

//DELETE tables/TodoItem/48D68C86-6EA6-4C25-AA33-223FC9A27959 
public Task DeleteTodoItem(string id) 
{ 
    return DeleteAsync(id); 
} 

爲你的移動客戶端,你可以按照以下方式調用刪除操作:

//delete a item and return nothing 
await onlineTodoTable.DeleteAsync(new TodoItem() {Id= "bb29f1655fb94897a3074f8e5b91b86d"}); 

Or 

//delete a item and return a JToken 
JObject obj = new JObject(); 
obj.Add("id", "faa9a47e57114988b0395a4c32b7d05d"); 
var jtoken=await onlineTodoTable.DeleteAsync(obj); 

要刪除一個項目並返回自定義響應,您可以按如下方式更改操作:

//DELETE tables/TodoItem/48D68C86-6EA6-4C25-AA33-223FC9A27959 
public async Task<string> DeleteTodoItem(string id) 
{ 
    await DeleteAsync(id); 
    return id; 
} 

如我所知, Insert,Update操作將在操作成功執行後返回相關值。當請求失敗時,針對您的移動後端的移動客戶端操作會拋出異常。我建議您只需用try-catch包裝移動客戶端操作,並在針對移動應用後端調用CRUD操作而不是檢索http狀態代碼時處理異常(例如記錄錯誤消息或提醒客戶端用戶)。