Проблема с перезагрузкой страницы (таблицы) после удаления записи из базы данных - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть приложение ASP.NET CORE MVC с таблицей, в которой перечислены некоторые клиенты (CRUD), и я могу удалять пользователей, когда нажимаю кнопку Удалить.

Проблема, которую я пытаюсь решить, - это когда яобновите страницу после удаления записей из списка, в листинге по-прежнему будет отображаться удаленная запись, когда в базе данных запись удаляется, и если я перезагрузлю (F5) страницу вручную, запись исчезнет.

Я уже пробовал location.reload (), windows.location.reload () и ничего ... Я вижу, что страница перезагружается, но запись не исчезает.

Мойкод выше:

<script type="text/javascript">

        function toggleChecked(status) {
            $("#checkboxes input").each(function () {

                // Set the checked status of each to match the
                // checked status of the check all checkbox:
                $(this).prop("checked", status);
            });
        }

        function Delete(id) {
            var example_table = $("#example1")
            var r = confirm("Are you sure you want to Delete?");
            if (r == true) {

                $.ajax(
                {
                    type: "POST",
                    url: '@Url.Action("Delete", "Clients")',
                    data: {
                        id: id
                    },
                    error: function (result) {
                        alert("error");
                    },
                    success: function (result) {
                        if (result == true) {
                            example_table.ajax.reload(); // -->> The problem is in this line!
                            location.reload(); // -->> The problem is in this line!
                        }
                        else {
                            alert("There is a problem, Try Later!");
                        }
                    }
                });
            }

        }



        $(document).ready(function () {
            //Set the default value of the global checkbox to true:
            $("#checkall").prop('checked', false);

            // Attach the call to toggleChecked to the
            // click event of the global checkbox:
            $("#checkall").click(function () {
                var status = $("#checkall").prop('checked');
                toggleChecked(status);
            });
        });


    </script>

Внутренний сервер Удалить:

[HttpPost]
        public bool Delete(int id)
        {
            try
            {
                Clients client = db.Clients.Where(s => s.Id == id).First();
                db.Clients.Remove(client );
                db.SaveChanges();
                return true;
            }
            catch (System.Exception)
            {
                return false;
            }

        }

Я хочу, чтобы удаленная запись исчезала в реальном времени без необходимости обновлять страницу вручную.Если вы можете помочь мне, я ценю.

Ответы [ 2 ]

0 голосов
/ 02 апреля 2019

Для обновления на стороне сервера вы можете использовать Response.Redirect(Request.RawUrl)

Для обновления на стороне клиента вы можете использовать window.location.href= window.location

или document.location.reload () вместо location.reload ()

0 голосов
/ 02 апреля 2019

Если удаление прошло успешно, вы можете вручную удалить этот элемент из списка при успешном завершении вызова ajax. Однако с перезагрузкой, перезагрузка страницы вызывает базу данных и получает список данных? Если это не вызвано перезагрузкой, то это не будет обновлять список. Если это так, то мое единственное предположение заключается в том, что куки могут хранить список?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...