首页 > 解决方案 > 如何停止/暂停ajax的异步调用

问题描述

从昨天开始我就被困在这个问题上,现在我需要帮助。我不知道如何正确地“质疑”这一点,但我认为这是对 ajax 异步的关注。

当我在 ajax 回发中调用 ajax 函数时,我无法从我的视图中完成 ajax 调用。

$.ajax({
  url: '@Url.Action("GetValidateAssignAccountName", "AccountsAssignment")?companyID=' + companyid,
  type: request_method,
  data: form_data
}).done(function (data) {
  if (data == '') {
    PromptAssign(data, post_url, request_method, form_data);
  }
  else {
    Assign(post_url, request_method, form_data);
  }
});

Assign功能不起作用/完成。我不知道如何调用它,但它通过控制器并调用存储过程,返回成功消息,但由于某种原因,该过程没有工作/保存。

我的问题是,当我打电话时PromptAssign——在这种情况下,我打电话给 amessageDialog然后打电话给Assign里面,就在那里Assign完成了这项工作。这是PromptAssign功能:

$("#messagedialog").dialog({
  open: function () {
    $(".ui-widget-overlay").css({ background: "#000000", opacity: 0.5 });
    $(".ui-dialog-title").css("color", "#228B22");
    //$(".message-img").attr("src", "../Content/images/success.png");
    $(".message-wrapper").html(msg);
  },
  modal: true, height: 250, width: 500,
  buttons: {
    //'Ok': function () { $(this).dialog('close'); },
    'Assign': function () {
      Assign(post_url, request_method, form_data);
      $(this).dialog('close');
    },
    'Close': function () { $(this).dialog('close'); }
  },
  create: function () {
    $(this).closest(".ui-dialog")
      .find(".ui-button").eq(2)
      .addClass("btn btn-default");
  },
  title: "Confirmation",
  dialogClass: "noclose"
});

最初,代码只是调用 sp 来保存数据的 assign 函数。但是我们添加了PromptAssign(第一个代码块,然后调用 msgbox/ PromptAssign,然后分配)这是一个验证,如果它存在与否,那么用户仍然可以Assign在他仍然选择之后。

所以当验证什么都不返回时,我不需要PromptAssign,所以我直接打电话Assign。这是行不通的。关于如何使用 ajax,我有什么遗漏吗?

标签: javascriptc#jqueryajaxasp.net-mvc

解决方案


只是为了回答评论,有一个像这样的早期问题是 ajax,然后是执行存储过程的控制器,但由于某种原因数据没有更新。我们通过在单独的函数中进行这些 ajax 调用来解决此问题。

对于这个,我试图应用同样的东西无济于事,我知道我使用 ajax 的方式没有任何问题,结果证明这是一个数据问题。由于数据库验证,我正在测试的特定记录无法正常工作。不过,还是谢谢你看。


推荐阅读