1

Ajax.BeginForm()在 MVC4 的部分视图中使用帮助程序提交表单时-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>

有什么方法可以让我使用 MVC4 HTML Helpers via 提交此表单,Ajax.BeginForm() 而不会导致部分视图刷新,也不需要我再次委托我的事件?

4

1 回答 1

2

您需要将事件与文档联系起来。改变

$('.eventButton').on('click', function()...

$(document).on('click', '.eventButton', function(){...
于 2013-10-01T01:46:41.803 回答