成功提交表单后显示模态对话框

Displaying a Modal dialog box after successful form submission

我这辈子都想不通如何在提交表单后显示模态弹出对话框。对话框应该只在我从控制器收到 ViewBag 值后出现,然后我们可以从那里获取它,但我无法让模式框弹出,页面只是导航到我的重定向页面。我还使用 Umbraco Surface 控制器而不是通常的 MVC 控制器 class。

我尝试使用 ViewBags 和数据切换与数据目标到模式,但无济于事。仍然无法让模态弹出。

查看

<input type="submit" id="submit" name="submit" class="submit btn btn-success" value="Submit" data-toggle="modal" data-target="#MyModal" />

模态

 @if (ViewBag.Status != null)
    {
    <!-- Modal -->
    <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                    <h4 class="modal-title" id="myModalLabel">Successfully Registered</h4>
                </div>
                <div class="modal-body">

                    Congratulations!!! you have been registered to our website. You will recieve an email for confirmation.

                </div>
                <div class="modal-footer">

                    <button type="button" class="btn btn-primary" onclick="location.href='/';">Ok</button>
                </div>
            </div>
        </div>
    </div>

    }

控制器

public ActionResult SubmitForm(RegistrationModel model)
    {


        var errors = ModelState.Values.SelectMany(v => v.Errors);

        if (ModelState.IsValid) { 


            // Get the details and save it to model
            RegisterUser(model);
            TempData["ContactSuccess"] = true;
            //SendEmail(model);
            // TempData["Success"] = true;
            ViewBag.Status = "Success";
            return RedirectToUmbracoPage(1144);
            // return RedirectToCurrentUmbracoPage();


        }
        return RedirectToUmbracoPage(1146);


        //return RedirectToCurrentUmbracoPage();
    }

我的预期结果只是显示模式弹出窗口并停止重定向。我知道我需要更改 returntoumbracopage return 但我只需要一些帮助。

在不修改控制器逻辑的情况下,我会在会话中设置成功状态。参见 https://docs.microsoft.com/en-us/dotnet/api/system.web.httpcontext.session?view=netframework-4.8

或者,使用 Ajax 并返回表示表单提交状态的 JSON 模型并相应地更新页面是更好的方法 post 数据。