如何捕获可能的错误消息并将其传输到甜蜜警报

时间:2019-01-21 15:30:32

标签: c# asp.net asp.net-mvc sweetalert

在删除按钮上,我显示了正常运行的甜蜜警报。问题是,当我发送不存在的对象ID时,会收到相同的消息(该消息已成功删除)。

我想要的是在发生任何错误时显示一条消息(例如,未找到具有该ID的事件,我想创建新消息并将其显示为甜蜜警报)。

$('.deleteEvent').on('click', function () {
    var $button = $(this);
    var id = $button.data('id');
    console.log("id", id);
    var config = {
        title: 'Are you sure',
        type: 'info',
        showCancelButton: true,
        confirmButtonText: 'Yes',
        cancelButtonText: ' No',
        closeOnConfirm: false,
        closeOnCancel: true
    };

    swal(config, function (isConfirm) {
        if (isConfirm) {
            console.log("lokac", window.location.origin);
            var url = window.location.origin + '/events/delete?id=' + id;
            $.post(url)
                .done(function () {
                    var doneConfig = {
                        title: 'Succ....',
                        type: 'success',
                        confirmButtonText: 'Ok'
                    };

                    sweetAlert(doneConfig, function (done) {
                        if (done) {
                            window.location.reload();
                        }
                    });
                })
                .fail(function (error) {
                    var errorConfig = {
                        title: 'Not Found',
                        type: 'error',
                        confirmButtonText: 'Ok'
                    };
                    sweetAlert(errorConfig, function (done) {
                        if (done) {
                            window.location.reload();
                        }
                    });
                });
        }
    });
});

还有我的控制器

 public ActionResult Delete(int id)
 {
        if (id == default(int))
            return RedirectToRoute(AppRoute.Events.EventsRoute);
        id = -1;
     try
      {
            var event = 
        DbContext.Event.FirstOrDefault(x => x.EventId == id);

            if (event == null)
            {
             //If event is not found, I want to create a message which
             //will be displayed on sweet alert                   
            }
      }
   //.....
  }

1 个答案:

答案 0 :(得分:0)

请注意,要执行失败功能,HTTP状态代码必须不同于200 OK,因此,例如,在控制器中,如果出现故障,您可以返回HTTP状态代码500(内部服务器错误),它将执行失败功能。

在您的示例中,必须类似:

if (event == null)
  {
     //If event is not found, I want to create a message which
     //will be displayed on sweet alert   
     return HttpStatusCodeResult(500)
  }

如果要显示其他消息,则应在.done和.fail函数中捕获HTTP状态代码,并根据从服务器获取的内容显示消息。