Когда я использую форму для отправки пост-запроса на удаление изменений базы данных, но когда я использую ajax, при отладке значение базы данных IsDeleted (read IMPORTANT) изменяется, когда внутри метода после выполнения db.SaveChanges () , но когда действие Delete выполнено, и я возвращаю значение IsDeleted, возвращается к старому значению. Также успешно вызывается действие «Удалить», идентификатор передается, а носитель находится в БД. В чем может быть проблема?
ВАЖНО: Я использую мягкое удаление, когда не удаляю запись, но я меняю значение IsDeleted на true при удалении, что также работает, когда Я не использую ajax.
У меня есть кнопка, в которой я передаю идентификатор модели в запрос ajax:
<button class="btn btn-danger" id="deleteCurrent" data-delete-id="@Model.Id">Delete Carrier</button>
Вот мой сценарий, вызов ajax успешно:
$(function () {
$("#deleteCurrent").click(function () {
var DeleteId = $(this).data("delete-id");
console.log("/Carriers/Delete/" + DeleteId);
$.ajax({
url: "/Carriers/Delete/" + DeleteId,
type: "POST"
}).done(function (result) {
if (result === true) {
alert('data is deleted successfully');
}
else {
alert('Error Please Try again..');
}
}).fail(function () {
alert("Something Went Wrong.");
});
});
});
</script>
И, наконец, вот мой контроллер (та же проблема возникает, если я использую (ApplicationDbContext db = new ApplicationDbContext ())):
private ApplicationDbContext db = new ApplicationDbContext();
// other actions
[HttpPost]
public JsonResult Delete(int id)
{
Carrier carrier = db.Carriers.Where(c => c.Id == id).FirstOrDefault<Carrier>();
db.Carriers.Remove(carrier);
db.SaveChanges();
return Json(true, JsonRequestBehavior.AllowGet);
}