powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Правильно ли я реализовал удаление?
15 сообщений из 15, страница 1 из 1
Правильно ли я реализовал удаление?
    #39592701
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
Как то не понятно поведение.
В режиме Дебага ставлю точку остановки в контроллере.
Иногда работает корректно, иногда несколько раз туда заходит.
Не понимаю почему.

Просмотрите код пожалуйста, может ошибку найдете.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
        [HttpPost]
        public JsonResult RemoveWork(int WorkID)
        {
            var work = new Work { WorkID = WorkID };
            db.Works.Attach(work);
            db.Works.Remove(work);
            db.SaveChanges();

            return Json(1);
        }



Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
    <script type="text/javascript">
            var myUrl2 = $("#paramUrl2").val();
            $(function () {
                $(document).on("click", ".removeWork", function (e) {
                    var workID = $(this).parent().children('input').val();
                    $.post(myUrl2, { WorkID: workID },
                        function (response) {
                            $('#form0').submit();
                        });
                });
            });

    </script>



Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
        <tbody>
            @foreach (WorkMVC.ReturnVal p in Model.getList())
            {
                <tr>
                    <td>
                        <table>
                            <tr>
                                <td>
                                    <a href="@Url.Action(..........)" title="Редактировать">
                                        <i class="fa fa-pencil-square-o"></i>
                                    </a>
                                </td>
                                <td class="remove-work">
                                    <a class="modItem btn btn-danger removeWork" title="Удалить">
                                        <i class="fa fa-trash-o"></i>
                                    </a>
                                    @Html.Hidden(p.WorkID.ToString(), p.WorkID.ToString())
                                </td>
                            </tr>
                        </table>
                    </td>
                    <td>....................</td>
                    ....................
                </tr>
            }
        </tbody>

       @Html.Hidden("paramUrl2", @Url.Action("RemoveWork", "Home", null, null))
...
Рейтинг: 0 / 0
Правильно ли я реализовал удаление?
    #39592764
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadipok,
В эксплорере F12 и там видно сколько post пошло.
...
Рейтинг: 0 / 0
Правильно ли я реализовал удаление?
    #39592870
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123vadipok,
В эксплорере F12 и там видно сколько post пошло.

Похоже проблема была в обновлении формы после формирования страницы.
После удаления строки, все перестраивалось и поэтому заново обновлялось.
После добавления условия, проблема вроде ушла:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
var flagStartSubmit = 0;
$(document).ready(function () {
    if (flagStartSubmit == 0) {
        $('#form0').submit();
        flagStartSubmit = 1;
    }
})



Хотя я не уверен.
спасибо.
...
Рейтинг: 0 / 0
Правильно ли я реализовал удаление?
    #39592879
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никуда она не ушла, есть проблема.
И совершенно не понятна для меня.
В первый раз он удаляет.
А потом четыре попытки удалить строку с таким же ID.
Естественно получает ошибку.
...
Рейтинг: 0 / 0
Правильно ли я реализовал удаление?
    #39593031
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadipok,
После сабмита и post всегда идет перезапрос страницы, т.е. get.
Если 4 раза сабмит, значит разбирайтесь почему зацикливание.
Есть логирование самого js кода.
Вы должны знать свой код и каждую строку.
Программирование js в ветке js.
...
Рейтинг: 0 / 0
Правильно ли я реализовал удаление?
    #39593067
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadipok
Код: javascript
1.
2.
3.
4.
     $.post(myUrl2, { WorkID: workID },
                        function (response) {
                            $('#form0').submit();
                        });


Вот тут у вас вроде 2 раза отправка на сервер. Нет?
Логирование в js.
Console.log('отправляю на сервер ааааааа);
...
Рейтинг: 0 / 0
Правильно ли я реализовал удаление?
    #39593955
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123vadipok
Код: javascript
1.
2.
3.
4.
     $.post(myUrl2, { WorkID: workID },
                        function (response) {
                            $('#form0').submit();
                        });


Вот тут у вас вроде 2 раза отправка на сервер. Нет?
Логирование в js.
Console.log('отправляю на сервер ааааааа);

Ну а как обновить содержимое после удаления?
...
Рейтинг: 0 / 0
Правильно ли я реализовал удаление?
    #39593997
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadipokНу а как обновить содержимое после удаления?вариант в лоб:
- колонка удалить с чекбоксами или кнопками с крестом
- если чекбоксы, то накапливаете коды товара ID в скрытом поле. Напр. 12,345,7778,...
Кнопка удалить (сабмит) одна на всю таблу с отправкой кода или того скрытого поля.
После сабмита страничка сама перерисуется уже БЕЗ тех что удалили.
...
Рейтинг: 0 / 0
Правильно ли я реализовал удаление?
    #39594025
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadipok,

пользователь может два раза нажать на кнопке удалить
аякс асинхронный
будет отправлено два запроса

дизейбли кнопку после нажатия, будет счастье
...
Рейтинг: 0 / 0
Правильно ли я реализовал удаление?
    #39594061
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview,
Сервер то не удалит 2 раза юзверя с кодом 12345. Его уже в базе не будет. Пусть хоть за клавой заснет на кнопе Del.
...
Рейтинг: 0 / 0
Правильно ли я реализовал удаление?
    #39594913
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123listtoview,
Сервер то не удалит 2 раза юзверя с кодом 12345. Его уже в базе не будет. Пусть хоть за клавой заснет на кнопе Del.
тем более не надо второй запрос отправлять
ну и наверняка у ТС а добавление есть где ниб)
...
Рейтинг: 0 / 0
Правильно ли я реализовал удаление?
    #39594930
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoviewну и наверняка у ТС а добавление есть где ниб)не в курсе.
Я привел пример вообще без ajax.
Для первого класса второй четверти, один сабмит.
...
Рейтинг: 0 / 0
Правильно ли я реализовал удаление?
    #39594981
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123listtoviewну и наверняка у ТС а добавление есть где ниб)не в курсе.
Я привел пример вообще без ajax.
Для первого класса второй четверти, один сабмит.
а не модно нынче страницы перезагружать
да и не нужно, не всегда по крайней мере, это уже другой вопрос
...
Рейтинг: 0 / 0
Правильно ли я реализовал удаление?
    #39594991
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoviewа не модно нынче страницы перезагружатьу него верстка не на ajax
...
Рейтинг: 0 / 0
Правильно ли я реализовал удаление?
    #39608444
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наконец-то дошли руки до этой проблемы.
Проблема решилась введением переменной oldWorkID:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
            var oldWorkID = 0;
            var myUrl2 = $("#paramUrl2").val();
            $(function () {
                $(document).on("click", ".removeWork", function (e) {
                    var workID = $(this).parent().children('input').val();
                    if (oldWorkID != workID)
                    {
                        $.post(myUrl2, { WorkID: workID },
                            function (response) {
                                $('#form0').submit();
                            });
                    }
                    oldWorkID = workID;
                });
            });


Всем спасибо!
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Правильно ли я реализовал удаление?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]