2017-06-13 22 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状态代码时处理异常(例如记录错误消息或提醒客户端用户)。