成功提交表单后显示模态对话框
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">×</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 数据。
我这辈子都想不通如何在提交表单后显示模态弹出对话框。对话框应该只在我从控制器收到 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">×</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 数据。