【问题标题】:Return code of DeleteAsync -- Xamarin with AzureDeleteAsync 的返回码——Xamarin with Azure
【发布时间】:2017-06-13 20:52:05
【问题描述】:

我需要知道检索返回码以删除 Azure 数据库数据的函数/方法(我使用 DeleteAsync),以便在出现错误或 NO-OK 时显示错误屏幕。我需要相同的不同操作(插入、更新...)

下一步显示我的代码...

     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

【问题讨论】:

  • 删除是幂等的,如果遇到服务器错误返回500,如果这些删除成功返回200,如果资源不存在,(取决于你问谁)返回200;
  • 我如何知道它是否返回 500、200..?我不知道怎么看返回...
  • 您不需要从控制器返回错误代码。您应该有一个服务来处理错误并根据错误返回代码。如果一切正常,您将返回 200。去研究错误代码
  • mmmm.. 很抱歉,但不明白你的意思......你能解释一下我的代码中的一个例子吗?谢谢

标签: c# azure xamarin xamarin.forms cross-platform


【解决方案1】:

根据您的描述,我假设您使用 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 状态代码时处理异常(例如记录错误消息或提醒客户端用户)。

【讨论】:

    猜你喜欢
    • 2017-09-18
    • 2020-07-10
    • 1970-01-01
    • 2015-03-01
    • 2018-05-10
    • 1970-01-01
    • 1970-01-01
    • 2017-08-29
    • 1970-01-01
    相关资源
    最近更新 更多