在MVC4的部分视图中使用Ajax.BeginForm()
帮助器提交表单时,onSuccess
部分视图会重新加载并导致我的所有事件在此部分视图中解除绑定。在以下代码中,在页面加载时,绑定到.eventButton
的事件将正常工作。一旦您尝试提交表单并收到错误,部分视图就会刷新,并且绑定到.eventButton
的事件将不再有效。
在我的例子中,它只是一个元素,但在我正在使用它的场景中有更多的参与。这是我的代码,删除了一些多余的信息。
<div id="login">
@{
AjaxOptions registerOptions = new AjaxOptions
{
HttpMethod = "Post",
UpdateTargetId = "login",
OnBegin = "showLoading",
OnSuccess = "stopLoading"
};
}
@using (Ajax.BeginForm("Login", "Account", registerOptions))
{
@Html.TextBoxFor(m => m.Email, new { placeholder = "Your Email" })
@Html.PasswordFor(m => m.Password, new { placeholder = "Your Password" })
<input type="submit" value="Sign In" />
}
<a class="eventButton">Clicking this will trigger an event!</a>
</div>
我有没有办法通过Ajax.BeginForm()
使用MVC4 HTML帮助程序提交此表单,而不会导致部分视图刷新,也不需要我再次委派我的事件?
答案 0 :(得分:2)
您需要将事件与文档联系起来。变化
$('.eventButton').on('click', function()...
到
$(document).on('click', '.eventButton', function(){...