Я застрял на этом со вчерашнего дня, теперь мне нужна помощь.Я не знаю, как правильно «поставить под сомнение» это, но я думаю, что это связано с тем, что 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?