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

时间:2019-07-23 20:59:52

标签: model-view-controller modal-dialog bootstrap-modal umbraco

我一生无法弄清楚提交表单后如何显示模式弹出对话框。该对话框仅在我从控制器收到ViewBag值后才出现,然后我们可以从那里获取它,但我只是无法弹出模式框,而该页面只是导航到我的重定向页面。我也使用Umbraco Surface控制器,而不是通常的MVC控制器类。

我尝试将ViewBags和data-target的data-toggle用作模式,但无济于事。仍然无法弹出模态。

查看

<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返回,但是我只需要一些帮助。

1 个答案:

答案 0 :(得分:1)

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

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