Как остановить / приостановить асинхронный вызов ajax - PullRequest
0 голосов
/ 03 декабря 2018

Я застрял на этом со вчерашнего дня, теперь мне нужна помощь.Я не знаю, как правильно «поставить под сомнение» это, но я думаю, что это связано с тем, что 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 - в этом случае я звоню messageDialog, а затем вызываю 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 для сохранения данных.Но мы добавили PromptAssign (сначала кодовый блок, затем вызвать msgbox / PromptAssign, затем назначить), который является проверкой, если она существует или нет, тогда пользователь может все еще Assign после, если он все еще выбирает.

Поэтому, когда проверка не возвращает ничего, мне не нужно PromptAssign, поэтому я просто сразу звоню Assign.Это не работает.Что-то мне не хватает как использовать ajax?

1 Ответ

0 голосов
/ 03 декабря 2018

Просто чтобы ответить на комментарии, была более ранняя проблема, такая как эта, которая идет к ajax, а затем к контроллеру, выполняющему хранимую процедуру, но по какой-то причине данные не обновляются.Мы исправили проблему, сделав эти вызовы ajax в отдельной функции.

Для этого я пытался применить то же самое безрезультатно, я знаю, что в моем способе использования ajax нет поворотоввне, это была проблема с данными.Конкретная запись, в которой я тестировал, не работает должным образом из-за проверок базы данных.Тем не менее, спасибо за просмотр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...