断点在MVC Action中命中两次

时间:2012-01-06 08:04:46

标签: json asp.net-mvc-3 razor

我正在研究razor中的mvc项目。我正在研究导入和导出模块。 现在在我的操作中我将返回JSON对象。现在在Http Get Request或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>

以上是我的整个脚本,并再次给出相同的错误。请检查并告诉我是否我做错了。 谢谢..

1 个答案:

答案 0 :(得分:1)

目前还不是很清楚你究竟在哪里调用这个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
    });
});