【发布时间】:2015-03-14 09:51:02
【问题描述】:
所以我有这个使用Bootstraps modal 的登录页面。然而,在通话结束后,modal 应该会消失。除了黑色背景。如何确保背景也消失?
我的_Menu.cshtml:
<div id="menu">
<div class="modal fade" id="form_login" role="dialog" aria-labelledby="form_LoginLabel" aria-hidden="true">
<div class="modal-dialog reset">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">Login</h4>
</div>
@using (Ajax.BeginForm("SignIn", "Account", new AjaxOptions() { UpdateTargetId = "menu", InsertionMode = InsertionMode.Replace, HttpMethod = "POST", OnSuccess="CloseModal()" }, new { @class = "form-inline", @role = "form" }))
{
<div class="modal-body">
@if(ViewBag.Message != null)
{
<p class="alert alert-warning">@ViewBag.Message</p>
}
<div class="form-group">
<label class="sr-only" for="email">Email</label>
<input class="form-control" type="email" id="email" name="email" placeholder="Enter email" value="" required="required" />
</div>
<div class="form-group">
<label class="sr-only" for="password">Password</label>
<input class="form-control" type="password" id="password" name="password" placeholder="Enter password" value="" required="required" />
</div>
<span id="message-login-loading" class="alert hidden"></span>
<span id="message-login-error" class="alert alert-danger hidden"></span>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-success" id="login" ><span class="glyphicon glyphicon-user"></span> Sign in</button>
@Html.ActionLink("Register", "Register", "Account", null, new { @class = "btn btn-primary" })
</div>
}
</div>
</div>
</div>
</div>
帐户控制器:
public ActionResult PartialMenu()
{
var model = ProfileSession.Session;
return PartialView("_Menu", model);
}
public ActionResult SignIn(string email, string password)
{
Login login = loginRep.GetByEmailAndPassword(email, password);
if (login != null)
{
ProfileSession.Session = profileRep.GetById(login.fk_profile);
return RedirectToAction("PartialMenu", "Home");
}
ViewBag.Message("Email or password is incorrect");
return RedirectToAction("PartialMenu");
}
【问题讨论】:
-
请创建一个 jsfiddle。还有,“背景”?你的意思是覆盖/背景?您的服务器代码无关紧要。
-
@im1dermike:我不认为服务器代码无关紧要。由于问题发生在我调用服务器之后。代码显示了应该如何更新表单。我不明白为什么白色模态后面的褪色黑色背景不会与模态一起消失。而且我无法重做 jsFiddle 中的问题。对不起
-
当我将您的模态代码按原样弹出到 Bootply 并在页面加载时弹出它,然后将其关闭,它会正常消失:bootply.com/DkrP5BPYsA。除非有办法复制错误,否则我不确定任何人都能为您提供多少帮助。
-
@MattD:您正在用右上角的“关闭”x 关闭模态框吗?这也适用于我。问题发生在 ajax 调用之后。我认为问题是由于 aja 所做的更新而发生的。我想知道的是,如果 ajax 调用成功,是否有办法强制背景消失
-
您应该能够发回成功消息以通过 JavaScript 处理。如果成功,请在您的模态框上运行
.modal('hide'),这应该会完全隐藏它。问题是,如果没有可行的方法来测试或重现问题,那么这里的任何人都不太可能为您提供帮助。
标签: css ajax twitter-bootstrap