Javascript MVC5HTML.ValidationSummary在AJAX发布后仍然可见
使用Html.ValidationSummary和Html.BeginForm时,通常在所有字段都已验证且控制器可以执行下一步操作时重新加载或离开页面。在这种情况下,不需要清除验证摘要 但是,当使用Ajax.begin时,用户可能永远不会离开页面。表单验证后,控件将转到上面的控制器live,但控制器可能会将用户发送回调用表单,因为需要处理一些服务器端验证。在这种情况下,.NET中的一个明显错误不会清除ValidationSummary。是的,我可以使用表单的OnBegin属性通过JavaScript/JQuery隐藏/清除它,但是在以后的步骤中,如果表单上需要它,比如当客户端验证无效时,它永远不会取消隐藏 我的表单的一个片段:Javascript MVC5HTML.ValidationSummary在AJAX发布后仍然可见,javascript,jquery,ajax,asp.net-mvc,Javascript,Jquery,Ajax,Asp.net Mvc,使用Html.ValidationSummary和Html.BeginForm时,通常在所有字段都已验证且控制器可以执行下一步操作时重新加载或离开页面。在这种情况下,不需要清除验证摘要 但是,当使用Ajax.begin时,用户可能永远不会离开页面。表单验证后,控件将转到上面的控制器live,但控制器可能会将用户发送回调用表单,因为需要处理一些服务器端验证。在这种情况下,.NET中的一个明显错误不会清除ValidationSummary。是的,我可以使用表单的OnBegin属性通过JavaScri
@using (Ajax.BeginForm("ExistingLogin", "Home", null, new AjaxOptions { HttpMethod = "Post", OnBegin="onBegin", OnSuccess = "onSuccess", OnFailure = "onError" }, new { @class = "form-horizontal", role = "form" }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary("Please correct the following errors:", new { @class = "alert alert-danger", @role = "alert" })
<div id="controllerResponse" class="alert alert-danger" role="alert" style="display:none;"></div>
@使用(Ajax.BeginForm(“ExistingLogin”,“Home”,null,新的AjaxOptions{HttpMethod=“Post”,OnBegin=“OnBegin”,OnSuccess=“OnSuccess”,OnFailure=“onError”},新的{@class=“form horizontal”,role=“form”})
{
@Html.AntiForgeryToken()
@ValidationSummary(“请更正以下错误:”,new{@class=“alert-alert-danger”,@role=“alert”})
如何处理此问题?与其隐藏/显示验证器,不如按照jQuery的操作,更改类:
function onComplete() {
$(".alert").removeClass("validation-summary-errors");
$(".alert").addClass("validation-summary-valid");
}
只是不确定是在OnComplete中还是在OnBegin中执行此操作更好。检查此问题: