在删除按钮上,我显示了正常运行的甜蜜警报。问题是,当我发送不存在的对象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
}
}
//.....
}
答案 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状态代码,并根据从服务器获取的内容显示消息。