在ASP.NET中将Javascript Bootbox与Ajax.BeginForm一起使用

问题描述 投票:0回答:1

在查看页面中:

@using (Ajax.BeginForm("UpdateAccount", "AccountInfo", new AjaxOptions {
    HttpMethod = "POST",
    AllowCache = false,
    OnSuccess = "accountUpdateRequestSuccess",
    OnFailure = "formSubmissionFailed",
    OnBegin = "validateAccountInformation"
}))

validateAccountInformation函数如下:

function validateAccountInformation() {
if (error.length > 0) {
    showErrorNotification(errorListHtml);
    return false;
}
else {
    if ( Some Conditions ) {
        bootbox.confirm({
            title: "Confirm",
            size: "medium",
            message: "Some Message",
            callback: function (result) {
                if (result) {
                    Some Code
                }
                else {
                    Some Code
                }
            }
        });
    }        
}

单击保存按钮时,首先会调用validateAccountInformation函数。如果没有错误,它将启动一个Bootbox。如果单击Bootbox OK按钮,它将提交具有某些值的表单;如果单击Bootbox CANCEL按钮,它将提交具有与以前不同的某些值的表单。

现在,我面临的问题是,当用户单击“保存”按钮时,它将进入validateAccountInformation函数。如果没有错误,它将调用Bootbox.Confirm。我期望表单提交将一直保持到在Bootbox中单击“确定” /“取消”按钮之前。但是它不等待Bootbox。意味着从不调用Bootbox回调函数。它可能与AJAX异步有关。

我使用了JavaScript确认方法。而且此方法确实可以保存表单提交。

function validateAccountInformation() {
    if (error.length > 0) {
        showErrorNotification(errorListHtml);
        return false;
    }
    else {
        if ( Some Conditions ) {
            if (confirm("check")) {
                some code
            }
        }
    }
}

根据上述方案,可以使用某种方式将Bootbox确认框与Ajax Begin Form一起使用吗?

asp.net-mvc asp.net-ajax ajaxform bootbox
1个回答
0
投票
我已经更改了流程,并且能够集成Bootbox。我所做的是,我省略了onBegin函数。所以我的视图页面看起来像这样
© www.soinside.com 2019 - 2024. All rights reserved.