我一生无法弄清楚提交表单后如何显示模式弹出对话框。该对话框仅在我从控制器收到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">×</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返回,但是我只需要一些帮助。
答案 0 :(得分:1)
在不修改控制器逻辑的情况下,我将在会话中设置成功状态。参见https://docs.microsoft.com/en-us/dotnet/api/system.web.httpcontext.session?view=netframework-4.8
或者,使用Ajax发布数据并返回表示表单提交状态的JSON模型并相应地更新页面是一种更好的方法。