自昨天以来,我一直困扰于这个问题。如果我在chrome和I.E中运行以下代码它完美地工作。它在“ WorkOrder”中调用“ AssignWorkOrders”方法,并在最后重新加载页面以显示更改。

但是,当我使用Firefox控件时,会跳过对“ AssignWorkOrders”方法的调用(不要转到AssignWorkOrders),也不要重新加载页面。

另外,如果我注释掉window.location.reload();控件将为所有3个浏览器调用“ AssignWorkOrders”方法。

您能否建议使用window.location.reload有什么问题?

任何帮助将不胜感激..我非常喜欢Firefox。请让我知道是否不清楚或需要任何其他详细信息...

$.confirm("@Resources.LanguageStrings.ReadyToAssignWorkOrders".format(workOrderIds.length),
                function() {

                var objToSend = { workOrderUpdateParams: workOrderIds };

                $.ajax({
                    url: '@Url.Action("AssignWorkOrders", "WorkOrder")',
                    dataType: 'json',
                    type: 'POST',
                    traditional: true,
                    cache: false,
                    data: $.toDictionary(objToSend),
                    success: function(json) {
                        // get a handle to the dataTbale and redraw the page
                        var oTable = $('##WorkOrderList').dataTable();
                        oTable.fnDraw();
                        selectAllComboItems('#SelectedStaff', false);
                        selectAllComboItems('#SelectedVendor', false);
                    }
                });
                window.location.reload();
            });

最佳答案

您在异步请求后直接重新加载。这将导致页面在请求完成之前重新加载。您需要在成功方法中进行操作...

$.confirm(
    "@Resources.LanguageStrings.ReadyToAssignWorkOrders"
        .format(workOrderIds.length),
                function() {

                var objToSend = { workOrderUpdateParams: workOrderIds };

                $.ajax({
                    url: '@Url.Action("AssignWorkOrders", "WorkOrder")',
                    dataType: 'json',
                    type: 'POST',
                    traditional: true,
                    cache: false,
                    data: $.toDictionary(objToSend),
                    success: function(json) {
                        // get a handle to the dataTbale and redraw the page
                        var oTable = $('##WorkOrderList').dataTable();
                        oTable.fnDraw();
                        selectAllComboItems('#SelectedStaff', false);
                        selectAllComboItems('#SelectedVendor', false);
                        // do it here
                        window.location.reload();
                    }
                });
            });

09-20 23:25