Точка останова дважды попала в действие MVC - PullRequest
0 голосов
/ 06 января 2012

Я работаю над проектом MVC в бритве. В этом я работаю над модулем импорта и экспорта.Теперь в своем действии я возвращаю объект JSON. Теперь в обоих запросах Http Get и Http Post у меня возникает одна и та же проблема. Поскольку точка останова дважды срабатывает, моя запись добавляется в базу данных дважды.

Ниже приведеноМой сценарий

<script type="text/javascript">
    $(document).ready(function (e) {
        $(".update").live('click', function () {
            var id = $(this).attr('id');
            var str = "";
            $(this).parent('td').parent('tr').find('td.data').each(function () {
                str = str + ";" + $(this).text().trim();
            });
            if (str.length > 0) {
                str = str.substring(1, str.length);
            }
            var header = $("#hdn_header").val();
            $.post('/ImportCSV/Update', {
                ImportData: str,
                ImportHeader: header
            }, function (result) {
                var CompName = result.CompanyName;
                var CompPhone = result.CompanyPhone;
                var CompEmail = result.CompanyEmail;
                var CompWebsite = result.CompanyWebsite;
                var CompAddress = result.CompanyAddress;
                var CompZip = result.CompanyZip;
                var CompCity = result.CompanyCity;
                var CompCountry = result.CompanyCountry;
                var CompNote = result.CompanyNote;
                var ConFirstName = result.ConFirstName;
                var ConLastName = result.ConLastName;
                var ConTitle = result.ConTitle;
                var ConPhone = result.ConPhone;
                var ConEmail = result.ConEmail;
                var ConNote = result.ConNote;
                var ConMobile = result.ConMobile;
                $(".update").each(function () {
                    if ($(this).attr('id') == id) {
                        var i = parseInt('1');
                        $(this).parent('td').parent('tr').find('td.data').each(function () {
                            if ($(this).text().trim() != CompName && $(this).index() == 2) {
                                {
                                    $(this).css('backgroundColor', '#FFFFC0');
                                    return;
                                }
                            }
                            if ($(this).text().trim() != CompPhone && $(this).index() == 3) {
                                {
                                    $(this).css('backgroundColor', '#FFFFC0');
                                    return;
                                }
                            }
                            if ($(this).text().trim() != CompEmail && $(this).index() == 4) {
                                {
                                    $(this).css('backgroundColor', '#FFFFC0');
                                    return;
                                }
                            }
                            if ($(this).text().trim() != CompWebsite && $(this).index() == 5) {
                                {
                                    $(this).css('backgroundColor', '#FFFFC0');
                                    return;
                                }
                            }
                            if ($(this).text().trim() != CompAddress && $(this).index() == 6) {
                                {
                                    $(this).css('backgroundColor', '#FFFFC0');
                                    return;
                                }
                            }
                            if ($(this).text().trim() != CompZip && $(this).index() == 7) {
                                {
                                    $(this).css('backgroundColor', '#FFFFC0');
                                    return;
                                }
                            }
                            if ($(this).text().trim() != CompCity && $(this).index() == 8) {
                                {
                                    $(this).css('backgroundColor', '#FFFFC0');
                                    return;
                                }
                            }
                            if ($(this).text().trim() != CompCountry && $(this).index() == 9) {
                                {
                                    $(this).css('backgroundColor', '#FFFFC0');
                                    return;
                                }
                            }
                            if ($(this).text().trim() != CompNote && $(this).index() == 10) {
                                {
                                    $(this).css('backgroundColor', '#FFFFC0');
                                    return;
                                }
                            }
                            if ($(this).text().trim() != ConFirstName && $(this).index() == 12) {
                                {
                                    $(this).css('backgroundColor', '#FFFFC0');
                                    return;
                                }
                            }
                            if ($(this).text().trim() != ConLastName && $(this).index() == 13) {
                                {
                                    $(this).css('backgroundColor', '#FFFFC0');
                                    return;
                                }
                            }
                            if ($(this).text().trim() != ConTitle && $(this).index() == 14) {
                                {
                                    $(this).css('backgroundColor', '#FFFFC0');
                                    return;
                                }
                            }
                            if ($(this).text().trim() != ConPhone && $(this).index() == 15) {
                                {
                                    $(this).css('backgroundColor', '#FFFFC0');
                                    return;
                                }
                            }
                            if ($(this).text().trim() != ConMobile && $(this).index() == 16) {
                                {
                                    $(this).css('backgroundColor', '#FFFFC0');
                                    return;
                                }
                            }
                            if ($(this).text().trim() != ConEmail && $(this).index() == 17) {
                                {
                                    $(this).css('backgroundColor', '#FFFFC0');
                                    return;
                                }
                            }
                            if ($(this).text().trim() != ConNote && $(this).index() == 18) {
                                {
                                    $(this).css('backgroundColor', '#FFFFC0');
                                    return;
                                }
                            }
                        });
                    }
                });
            });
            return false;
        });
    });
</script>

Выше приведен весь мой сценарий, и он снова выполняет такую ​​же проверку error.pls и сообщает мне, если я делаю что-то не так.Спасибо ..

1 Ответ

1 голос
/ 06 января 2012

Не очень ясно, где именно вы вызываете этот AJAX-запрос, но я подозреваю, что он находится внутри события .click некоторого якоря или кнопки .submit, и вы не отменили действие по умолчанию для этой кнопкивозвращая false из обработчика.Таким образом, при нажатии на ссылку вы получаете первый запрос с помощью AJAX POST и сразу после выполнения действия ссылки по умолчанию.

Так, например, если вы подписывались на событие .submit какой-либо формы, попробуйте отменить действие по умолчанию, вернув false:

$(function() {
    $('#someForm').submit(function() {
        $.post('/ImportCSV/Update', { ImportData: str, ImportHeader: header }, function (result) {
            var CompName = result.CompanyName;
        });

        return false; // <-- that's the important part
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...